Re: Is unix socket limited to ~16KB?

From: Krzysztof Oledzki <ole#ans.pl>
Date: Fri, 29 Feb 2008 12:23:07 +0100 (CET)

On Thu, 28 Feb 2008, Willy Tarreau wrote:

> On Thu, Feb 28, 2008 at 03:20:38PM +0100, Willy Tarreau wrote:
>> Hi Krzysztof,
>>
>> On Fri, Feb 22, 2008 at 11:31:17PM +0100, Krzysztof Oledzki wrote:
>>> Hello,
>>>
>>> It seems that there is only possible to get first 16KB of stats with unix
>>> socket:
>>>
>>> # echo -ne "show stat\n"|./socat unix-connect:/var/run/haproxy.stat
>>> stdio|wc -c -l
>>> 155 16366
>>>
>>> Is that intentional?
>>
>> it is not expected at all and I think it is a bug. I'm investigating this
>> issue right now.
>
> I found the problem. It's not an implementation bug, it's a design bug.
> The fact is that the session getting the "show stat" or "show info" request
> does not hold the request, and if the response needs to reschedule, then the
> nature of the request is lost :-(
>
> In the HTTP case, a somewhat similar case was addressed by the SN_STAT_FMTCSV
> flag, indicating if we want to read csv or html. Here we should in theory use
> the same principle. But doing such exceptions is quickly going to get me nuts.
>
> So I will prefer to store several "request" parameters in the session, which
> will be castable depending on the request handler.
>
> I was about to fix the problem reusing the SN_STAT_FMTCSV flag, but I don't
> like that. Instead, I will not fix it immediately and focus on your changes
> first. That way, I will reduce the risk of rejects, making it easier to fix
> the problem just after that.

Thanks.

Best regards,

                                 Krzysztof Olędzki Received on 2008/02/29 12:23

This archive was generated by hypermail 2.2.0 : 2008/02/29 12:30 CET