BUG/MEDIUM: stream: Don't use small buffer on queuing with a request data filter

When there is a filter registered on the request data forwarding, we must
disable usage of the small buffers. For now it is safer to do so because we
don't know if the filter will properly handle the small buffers. In
addition, there is a true issue because it is possible to never re-arm the
receives in that case because the buffer reserve must be respected. This
leads to think a small buffer is always full, even empty one.

No backport needed.
This commit is contained in:
Christopher Faulet 2026-06-03 14:28:27 +02:00
parent 91aa9b88c9
commit 8b71e1f155

View file

@ -2517,7 +2517,7 @@ struct task *process_stream(struct task *t, void *context, unsigned int state)
if (scb->state == SC_ST_ASS && srv && srv->rdr_len && (s->flags & SF_REDIRECTABLE))
http_perform_server_redirect(s, scb);
if (unlikely((s->be->options2 & PR_O2_USE_SBUF_QUEUE) && scb->state == SC_ST_QUE)) {
if (unlikely((s->be->options2 & PR_O2_USE_SBUF_QUEUE) && scb->state == SC_ST_QUE && !HAS_REQ_DATA_FILTERS(s))) {
struct buffer sbuf = BUF_NULL;
if (IS_HTX_STRM(s)) {