From 8bc1759f609ef4e34d3b303b3c72517b4f4b2f4a Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Mon, 28 Feb 2022 17:27:09 +0100 Subject: [PATCH] DEBUG: stream-int: Fix BUG_ON used to test appctx in si_applet_ops callbacks 693b23bb1 ("MEDIUM: tree-wide: Use unsafe conn-stream API when it is relevant") introduced a regression in DEBUG_STRICT mode because some BUG_ON conditions were inverted. It should ok now. In addition, ALREADY_CHECKED macro was removed from appctx_wakeup() function because it is useless now. --- include/haproxy/applet.h | 2 -- src/stream_interface.c | 10 +++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/include/haproxy/applet.h b/include/haproxy/applet.h index b4c33ea26..97b9c347b 100644 --- a/include/haproxy/applet.h +++ b/include/haproxy/applet.h @@ -113,8 +113,6 @@ static inline void appctx_free(struct appctx *appctx) /* wakes up an applet when conditions have changed */ static inline void appctx_wakeup(struct appctx *appctx) { - ALREADY_CHECKED(appctx); - task_wakeup(appctx->t, TASK_WOKEN_OTHER); } diff --git a/src/stream_interface.c b/src/stream_interface.c index c5112dfe5..35f66d749 100644 --- a/src/stream_interface.c +++ b/src/stream_interface.c @@ -1656,7 +1656,7 @@ void si_applet_wake_cb(struct stream_interface *si) { struct channel *ic = si_ic(si); - BUG_ON(cs_appctx(si->cs)); + BUG_ON(!cs_appctx(si->cs)); /* If the applet wants to write and the channel is closed, it's a * broken pipe and it must be reported. @@ -1696,7 +1696,7 @@ static void stream_int_shutr_applet(struct stream_interface *si) { struct channel *ic = si_ic(si); - BUG_ON(cs_appctx(si->cs)); + BUG_ON(!cs_appctx(si->cs)); si_rx_shut_blk(si); if (ic->flags & CF_SHUTR) @@ -1732,7 +1732,7 @@ static void stream_int_shutw_applet(struct stream_interface *si) struct channel *ic = si_ic(si); struct channel *oc = si_oc(si); - BUG_ON(cs_appctx(si->cs)); + BUG_ON(!cs_appctx(si->cs)); oc->flags &= ~CF_SHUTW_NOW; if (oc->flags & CF_SHUTW) @@ -1785,7 +1785,7 @@ static void stream_int_chk_rcv_applet(struct stream_interface *si) { struct channel *ic = si_ic(si); - BUG_ON(cs_appctx(si->cs)); + BUG_ON(!cs_appctx(si->cs)); DPRINTF(stderr, "%s: si=%p, si->state=%d ic->flags=%08x oc->flags=%08x\n", __FUNCTION__, @@ -1802,7 +1802,7 @@ static void stream_int_chk_snd_applet(struct stream_interface *si) { struct channel *oc = si_oc(si); - BUG_ON(cs_appctx(si->cs)); + BUG_ON(!cs_appctx(si->cs)); DPRINTF(stderr, "%s: si=%p, si->state=%d ic->flags=%08x oc->flags=%08x\n", __FUNCTION__,