From 7a1382da79a6f338e19ef5023a10ca2db0b9998f Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 18 Mar 2026 10:53:13 +0100 Subject: [PATCH] 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. --- src/flt_spoe.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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);