------------------------------------------------------------------------
*From: *Willy Tarreau <w...@1wt.eu>
*Sent: * 2014-06-23 10:23:44 EDT
*To: *haproxy@formilux.org
*CC: *Patrick Hemmer <hapr...@stormcloud9.net>, Rachel Chavez
<rachel.chave...@gmail.com>
*Subject: *3rd regression : enough is enough!

> Hi guys,
>
> today we got our 3rd regression caused by the client-side timeout changes
> introduced in 1.5-dev25. And this one is a major one, causing FD leaks
> and CPU spins when servers do not advertise a content-length and the
> client does not respond to the FIN.  And the worst of it, is I have no
> idea how to fix this at all.
>
> I had that bitter feeling when doing these changes a month ago that
> they were so much tricky that something was obviously going to break.
> It has broken twice already and we could fix the issues. The second
> time was quite harder, and we now see the effect of the regressions
> and their workarounds spreading like an oil stain on paper, with
> workarounds becoming more and more complex and less under control.
>
> So in the end I have reverted all the patches responsible for these
> regressions. The purpose of these patches was to report "cD" instead
> of "sD" in the logs in the case where a client disappears during a
> POST and haproxy has a shorter timeout than the server's.
>
> I'll issue 1.5.1 shortly with the fix before everyone gets hit by busy
> loops and lacks of file descriptors. If we find another way to do it
> later, we'll try it in 1.6 and may consider backpoting to 1.5 if the
> new solution is absolutely safe. But we're very far away from that
> situation now.
>
> I'm sorry for this mess just before the release, next time I'll be
> stricter about such dangerous changes that I don't feel at ease with.
>
> Willy
>
>

This is unfortunate. I'm guessing a lot of the issue was in ensuring the
client timeout was observed. Would it at least be possible to change the
response, so that even if the server timeout is what kills the request,
that the client gets sent back a 408 instead of a 503?

-Patrick

Reply via email to