Colin Ingarfield reported some unexplainable flags in the logs. For example, a "LR" termination state was set on a request which was forwarded to a server, where "LR" means that the request should have been handled internally by haproxy.
This case happens when at least client side keep-alive is enabled. Next requests in the connection will inherit the flags from the previous request. 2 fields are impacted : "termination_state" and "Tt" in the timing events, where a "+" can be added, when a previous request was redispatched. This is not critical for the service itself but can confuse troubleshooting. The fix must be backported to 1.5 and 1.4. --- src/proto_http.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/proto_http.c b/src/proto_http.c index 3a3aa80..cd953d1 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -4926,6 +4926,7 @@ void http_end_txn_clean_session(struct session *s) s->rep->flags &= ~(CF_SHUTR|CF_SHUTR_NOW|CF_READ_ATTACHED|CF_READ_ERROR|CF_READ_NOEXP|CF_STREAMER|CF_STREAMER_FAST|CF_WRITE_PARTIAL|CF_NEVER_WAIT|CF_WROTE_DATA); s->flags &= ~(SN_DIRECT|SN_ASSIGNED|SN_ADDR_SET|SN_BE_ASSIGNED|SN_FORCE_PRST|SN_IGNORE_PRST); s->flags &= ~(SN_CURR_SESS|SN_REDIRECTABLE|SN_SRV_REUSED); + s->flags &= ~(SN_ERR_MASK|SN_FINST_MASK|SN_REDISP); s->txn.meth = 0; http_reset_txn(s); -- 2.1.1