BUG/MEDIUM: connection: Wake the stconn on error when failing to create mux

When the app_ops were removed, direct calls to the SC wake callback function
were replaced by tasklet wakeups. However, in conn_create_mux(), it was
replaced by a direct call to sc_conn_process(). However, sc_conn_process()
is only usable when the SC is attach to a stream. A backend mux can be
created for a healcheck. In this context, sc_conn_process() cannot be
called.

Because of this bug, crashes can be experienced when an error is triggered
during a SSL connection attempt from a healthcheck.

To fix the issue, the call to sc_conn_process() was replaced by a tasklet
wakeup.

This patch should fix the issue #3326. No backport needed.
This commit is contained in:
Christopher Faulet 2026-04-08 08:07:14 +02:00
parent accc9003e8
commit b7add82f92

View File

@ -141,7 +141,7 @@ int conn_create_mux(struct connection *conn, int *closed_connection)
fail:
/* let the upper layer know the connection failed */
if (sc) {
sc_conn_process(sc);
tasklet_wakeup(sc->wait_event.tasklet, TASK_WOKEN_MSG);
}
else if (conn_reverse_in_preconnect(conn)) {
struct listener *l = conn_active_reverse_listener(conn);