Hello,

On Fri, Dec 29, 2017 at 3:05 PM, Willy Tarreau <w...@1wt.eu> wrote:
>> Haproxy calls shutdown() after the HTTP payload was transmitted, nginx
>> in the default configuration or nc for that matter closes the
>> connection (we see recvfrom = 0) and then we close():
>
> I can't reproduce this one for now. I'm pretty sure that it's timing
> related.
>
>> 14:39:57.382142 sendto(9, "POST /111 HTTP/1.1\r\nuser-agent: "...,
>> 169, MSG_DONTWAIT|MSG_NOSIGNAL, NULL, 0) = 169
> (...)
>> 14:39:57.392212 read(8, "\27\3\3\0(", 5) = 5
>> 14:39:57.392458 read(8,
>> "tQ\325'wD\2375\222\202\1\241\277\35\347\213;\221&\211\303g\322\226[\334\10Z\20\332\36s"...,
>>  40) = 40
> (...)
>> 14:39:57.392868 sendto(9, "bla=bla", 7, MSG_DONTWAIT|MSG_NOSIGNAL, NULL, 0) 
>> = 7
>> 14:39:57.393178 shutdown(9, SHUT_WR)    = 0
> (...)
>
> It's interesting to see that the request was sent in two parts, which doesn't
> happen in my case. That may be one of the differences. I'll try to play along
> this.

Indeed when the frontend connection is H1, a single send() call
contains both headers and payload and the issue does not occur. But
when the frontend connection is H2, then header and payload are in 2
distinct send calls and the issue does occur.



Lukas

Reply via email to