Hi Patrick,

On Tue, May 06, 2014 at 07:38:04PM -0400, Patrick Hemmer wrote:
> *From: *Willy Tarreau <[email protected]>
> *Sent: * 2014-05-06 17:41:18 E
> *To: *Patrick Hemmer <[email protected]>, Rachel Chavez
> <[email protected]>
> *CC: *[email protected]
> *Subject: *Re: please check
> 
> > Hi Patrick, hi Rachel,
> >
> > I might have fixed half of the issue, I'd like you to test the attached 
> > patch.
> > It ensures that the client-side timeout is only disabled after transmitting
> > the whole body and not during the transmission. It will report "cD" in the
> > flags, but does not affect the status code yet. It does not abort when the
> > client timeout strikes, but still when the server timeout strikes, which is
> > another tricky thing to do properly. That's why I would be happy if you 
> > could
> > at least confirm that you correctly get cD or sH (or even sD) depending on
> > who times out first.
> >
> > Thanks,
> > Willy
> >
> So good news, bad news, and strange news.
> 
> The good news: It is reporting "cD--" as it should
> 
> The bad news: It's not reporting any return status at all. Before it
> would log 504 and send a 504 response back. Now it logs "-1" and doesn't
> send anything back. It's just closing the connection.

Till there that's expected since the timeout is not handled as an error
in the forwarding path. That's why I said it should fix half of the issue.

> The strange news: Contrary to your statement, the client connection is
> closed after the 1 second timeout. It even logs this. The only thing
> that doesn't happen properly is the absence of any response. Just
> immediate connection close.
> 
> 
> Before patch:
> haproxy[26318]: 127.0.0.1:51995 [06/May/2014:18:55:33.002] f1 b1/s1
> 0/0/0/-1/2001 504 194 - - sH-- 0/0/0/0/0 0/0 "GET / HTTP/1.1"
> 
> After patch:
> haproxy[27216]: 127.0.0.1:52027 [06/May/2014:18:56:34.165] f1 b1/s1
> 0/0/0/-1/1002 -1 0 - - cD-- 0/0/0/0/0 0/0 "GET / HTTP/1.1"

Interesting, for me it waited till the end. Or maybe you have
"option abortonclose" ?

Next step will be to assign status 408 and try to send the response
back at this step but only if nothing was sent yet.

Best regards,
Willy


Reply via email to