Hi Patrick, > > >> With incomplete headers I get: > > >> haproxy[8893]: 127.0.0.1:41438 [02/May/2014:14:11:26.373] f1 f1/<NOSRV> > > >> -1/-1/-1/-1/1001 408 212 - - cR-- 0/0/0/0/0 0/0 "<BADREQ>" > > >> > > >> With no body I get: > > >> haproxy[8893]: 127.0.0.1:41439 [02/May/2014:14:11:29.576] f1 b1/s1 > > >> 0/0/0/-1/2002 504 194 - - sH-- 1/1/1/1/0 0/0 "GET / HTTP/1.1" > > >> > > >> With incomplete body I get: > > >> haproxy[8893]: 127.0.0.1:41441 [02/May/2014:14:11:29.779] f1 b1/s1 > > >> 0/0/0/-1/2002 504 194 - - sH-- 0/0/0/0/0 0/0 "GET / HTTP/1.1" > > > Great, thank you. I think that it tends to fuel the theory that the > > > response error is not set where it should be in the forwarding path. > > > > > > I'll check this ASAP. BTW, it would be nice if you could check this > > > as well with 1.4.25, I guess it does the same. > > > > > > Best regards, > > > Willy > > > > > Confirmed. Exact same behavior with 1.4.25 > > Thank you!
Just FYI, I found that the problem initially comes from these few lines in process_session() : if ((s->rep->flags & (CF_AUTO_CLOSE|CF_SHUTR)) == 0 && (tick_isset(s->req->wex) || tick_isset(s->rep->rex))) { s->req->flags |= CF_READ_NOEXP; s->req->rex = TICK_ETERNITY; } They were originally merged in 1.3.16 with this commit : commit 7f875f6c8fe15660ca789eaf7d4846cee8ba8414 Author: Willy Tarreau <w...@1wt.eu> Date: Mon Aug 11 17:35:01 2008 +0200 [MEDIUM] simplify and centralize request timeout cancellation and request forwarding Instead of playing with req->flags and request timeout everywhere, tweak them only at precise locations. I need to carefully study the impact of changing this because undoing this could result in missed timeouts from time to time. At least now if I remove them, when the session times out, the logs report "cD" which is correct. The delay is still the server's delay (because the error handling is incomplete in http_request_forward_body()) and the status is -1 for the same reason. I expect to look into this during this week. Best regards, Willy