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