From: Christopher Faulet Date: Wed, 18 Mar 2026 09:53:13 +0000 (+0100) Subject: BUG/MINOR: spoe: Fix condition to abort processing on client abort X-Git-Tag: v3.4-dev7~25 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7a1382da79a6f338e19ef5023a10ca2db0b9998f;p=thirdparty%2Fhaproxy.git BUG/MINOR: spoe: Fix condition to abort processing on client abort The test to detect client aborts in the SPOE, introduced by commit b3be3b94a ("BUG/MEDIUM: spoe: Properly abort processing on client abort"), was no correct. Producer flags must not be tested. Only the frontend SC must be tested when the abortonclose option is set. Because of this bug, when a client aborted, the SPOE processing was aborted too, regardless the abortonclose option. This patch must be backpoeted with the commit above, so as far as 3.1. --- diff --git a/src/flt_spoe.c b/src/flt_spoe.c index 5d8f23dba..e1ce537de 100644 --- a/src/flt_spoe.c +++ b/src/flt_spoe.c @@ -1116,8 +1116,7 @@ static int spoe_process_event(struct stream *s, struct spoe_context *ctx, struct channel *chn = (dir == SMP_OPT_DIR_REQ) ? &s->req : &s->res; if ((s->scf->flags & SC_FL_ERROR) || - ((s->scf->flags & (SC_FL_EOS|SC_FL_ABRT_DONE)) && proxy_abrt_close_def(s->be, 1)) || - (chn_prod(chn)->flags & (SC_FL_ERROR|SC_FL_EOS|SC_FL_ABRT_DONE))) { + ((s->scf->flags & (SC_FL_EOS|SC_FL_ABRT_DONE)) && proxy_abrt_close_def(s->be, 1))) { ctx->status_code = SPOE_CTX_ERR_INTERRUPT; spoe_stop_processing(agent, ctx); spoe_handle_processing_error(s, agent, ctx, dir);