mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-05-04 16:57:58 +00:00
BUG/MEDIUM: stream: Don't clear the stream_interface flags in si_update_both.
In commitd7704b534
, we introduced and expiration flag on the stream interface, which is used for the connect, the queue and the turn around. Because the turn around state isn't an error, the flag was reset in process_stream(), and later in commitcff6411f9
when introducing the SI_FL_ERR flag, the cleanup of the flag at this place was erroneously generalized. To fix this, the SI_FL_EXP flag is only cleared at the end of the turn around state, and nobody should clear the stream interface flags anymore. This should be backported to 1.9, it has no known impact on older versions.
This commit is contained in:
parent
120f64a8c4
commit
86dcad6c62
@ -1051,6 +1051,8 @@ static void sess_update_stream_int(struct stream *s)
|
||||
if (!(si->flags & SI_FL_EXP))
|
||||
return; /* still in turn-around */
|
||||
|
||||
si->flags &= ~SI_FL_EXP;
|
||||
|
||||
si->exp = TICK_ETERNITY;
|
||||
|
||||
/* we keep trying on the same server as long as the stream is
|
||||
|
@ -830,9 +830,6 @@ void si_update_both(struct stream_interface *si_f, struct stream_interface *si_b
|
||||
req->flags &= ~(CF_READ_NULL|CF_READ_PARTIAL|CF_READ_ATTACHED|CF_WRITE_NULL|CF_WRITE_PARTIAL);
|
||||
res->flags &= ~(CF_READ_NULL|CF_READ_PARTIAL|CF_READ_ATTACHED|CF_WRITE_NULL|CF_WRITE_PARTIAL);
|
||||
|
||||
si_f->flags &= ~SI_FL_EXP;
|
||||
si_b->flags &= ~SI_FL_EXP;
|
||||
|
||||
si_f->prev_state = si_f->state;
|
||||
si_b->prev_state = si_b->state;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user