mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-14 15:34:35 +00:00
[BUG] session: clear BF_READ_ATTACHED before next I/O
The BF_READ_ATTACHED flag was created to wake analysers once after
a connection was established. It turns out that this flag is never
cleared once set, so even if there is no event, some analysers are
still evaluated for no reason.
The bug was introduced with commit ea38854d34
.
It may cause slightly increased CPU usages during data transfers, maybe
even quite noticeable once when transferring transfer-encoded data,
due to the fact that the request analysers are being checked for every
chunk.
This fix must be backported in 1.4 after all non-reg tests have been
completed.
This commit is contained in:
parent
e29e1c5df4
commit
a6eebb372d
@ -1521,8 +1521,8 @@ resync_stream_interface:
|
||||
if (s->req->cons->state == SI_ST_EST && !s->req->cons->iohandler)
|
||||
s->req->cons->update(s->req->cons);
|
||||
|
||||
s->req->flags &= ~(BF_READ_NULL|BF_READ_PARTIAL|BF_WRITE_NULL|BF_WRITE_PARTIAL);
|
||||
s->rep->flags &= ~(BF_READ_NULL|BF_READ_PARTIAL|BF_WRITE_NULL|BF_WRITE_PARTIAL);
|
||||
s->req->flags &= ~(BF_READ_NULL|BF_READ_PARTIAL|BF_WRITE_NULL|BF_WRITE_PARTIAL|BF_READ_ATTACHED);
|
||||
s->rep->flags &= ~(BF_READ_NULL|BF_READ_PARTIAL|BF_WRITE_NULL|BF_WRITE_PARTIAL|BF_READ_ATTACHED);
|
||||
s->si[0].prev_state = s->si[0].state;
|
||||
s->si[1].prev_state = s->si[1].state;
|
||||
s->si[0].flags &= ~(SI_FL_ERR|SI_FL_EXP);
|
||||
|
Loading…
Reference in New Issue
Block a user