]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: filters: Don't deinit filters for disabled proxies during startup
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 11 May 2023 07:11:57 +0000 (09:11 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 11 May 2023 07:22:46 +0000 (09:22 +0200)
During the startup stage, if a proxy was disabled in config, all filters
were released and removed. But it may be an issue if some info are shared
between filters of the same type. Resources may be released too early.

It happens with ACLs defined in SPOE configurations. Pattern expressions can
be shared between filters. To fix the issue, filters for disabled proxies
are no longer released during the startup stage but only when HAProxy is
stopped.

This commit depends on the previous one ("MINOR: spoe: Don't stop disabled
proxies"). Both must be backported to all stable versions.

src/filters.c

index a66cfba40137bfeb9c0b00bf5ae68b39f4be87ad..8910fc2684847b6b4916433a4b3be3d579fb3beb 100644 (file)
@@ -308,10 +308,9 @@ flt_init_all()
        int err_code = ERR_NONE;
 
        for (px = proxies_list; px; px = px->next) {
-               if (px->flags & (PR_FL_DISABLED|PR_FL_STOPPED)) {
-                       flt_deinit(px);
+               if (px->flags & (PR_FL_DISABLED|PR_FL_STOPPED))
                        continue;
-               }
+
                err_code |= flt_init(px);
                if (err_code & (ERR_ABORT|ERR_FATAL)) {
                        ha_alert("Failed to initialize filters for proxy '%s'.\n",