BUG/MAJOR: stream-int: don't call si_cs_recv() in stream_int_chk_rcv_conn()

This one causes some events to be lost. It has already been tested in
an experimental branch but was not merged until being certain it was
needed. Fred figured that requesting /?k=1&s=447392 from httpterm through
haproxy-master was enough to stall the transfer.

No backport is needed, this only affects 1.9-dev5.
This commit is contained in:
Willy Tarreau 2018-10-30 11:01:08 +01:00
parent 6c81d5f41a
commit 1d0b7069f2

View File

@ -964,13 +964,9 @@ static void stream_int_chk_rcv_conn(struct stream_interface *si)
si->flags |= SI_FL_WAIT_ROOM;
}
else {
struct conn_stream *cs = objt_cs(si->end);
/* (re)start reading */
si->flags &= ~SI_FL_WAIT_ROOM;
if (cs) {
si_cs_recv(cs);
tasklet_wakeup(si->wait_event.task);
}
tasklet_wakeup(si->wait_event.task);
}
}