Hello Michal,

On Wed, Dec 11, 2019 at 03:46:11PM +0100, Michal Pasierb wrote:
> Hello,
> 
> I have situation where HAProxy receives a request but doesn't log it. I
> would like to know if this is desired behaviour or this is an actual bug.
> 
> To replicate this issue:
> 1) create HAProxy config which doesn't disable http-keep-alive
> 2) on backend server set http-keep-alive timeout to a low value of 2 seconds
> 3) run a script which sends requests in a loop and waits say 1.996 seconds
> between each iteration
> 
> >From time to time, there will be no response from HAProxy. This is
> understandable. Connecting directly to backend server, without using
> HAProxy, gives same result. This is all desired.
> 
> However, there is no log indicating that HAProxy was processing a request
> and that it failed on server side.
> 
> This issue has already been discussed at
> https://discourse.haproxy.org/t/haproxy-1-7-11-intermittently-closes-connection-sends-empty-response-on-post-requests/3052/5
> 
> I understand this configuration is clearly wrong because the timeout on
> server should be higher than on HAProxy. In this scenario, I'm responsible
> for HAProxy configuration and somebody else is responsible for
> configuration of servers in backends. I can not know if every server is
> correctly configured therefore I would like to enable logging of such
> requests.

I see what you mean, and in fact it's on purpose and we even had to
write code explicitly for this. The reason is that as you identified,
sometimes the server closes at the same moment we send the request. But
this must not be an error (and is not), it's just a matter of normal
keep-alive behavior. In this case we silently forward the close to the
client to act exactly like the server and let the client try again. I
remember that in early 1.5 before we did this, some users complained
that their monitoring was erratically reporting errors that didn't
affect users because they were such keep-alive timeout issues. I must
admit I hardly see what better solution we can propose at this point
in order to satisfy everyone :-/ What sounds logical to most seems to
be that only processed requests are logged which means that these ones
would rather be ignored.

Just my two cents,
Willy

Reply via email to