From 8b71e1f155dfc89f5ce24cff25ea0c752c2cab16 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 3 Jun 2026 14:28:27 +0200 Subject: [PATCH] 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. --- src/stream.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stream.c b/src/stream.c index 73feb7ebf..10543f862 100644 --- a/src/stream.c +++ b/src/stream.c @@ -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)) {