BUG/MEDIUM: filters: Don't deinit filters for disabled proxies during startup

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.
This commit is contained in:
Christopher Faulet 2023-05-11 09:11:57 +02:00
parent 7f4ffad46e
commit 0fda8d2c8e

View 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",