MEDIUM: config: initialize stick-tables after peers, not before
It's dangerous to initialize stick-tables before peers because they
start a task that cannot be stopped before we know if the peers need
to be disabled and destroyed. Move this after.
(cherry picked from commit 6866f3f33f970989843a1dddb71489d9b1ad3e28)
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 8e489a9..583c009 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -7369,20 +7369,6 @@
}
}
- /* initialize stick-tables on backend capable proxies. This must not
- * be done earlier because the data size may be discovered while parsing
- * other proxies.
- */
- for (curproxy = proxy; curproxy; curproxy = curproxy->next) {
- if (curproxy->state == PR_STSTOPPED)
- continue;
-
- if (!stktable_init(&curproxy->table)) {
- Alert("Proxy '%s': failed to initialize stick-table.\n", curproxy->id);
- cfgerr++;
- }
- }
-
/*
* Recount currently required checks.
*/
@@ -7436,6 +7422,20 @@
}
}
+ /* initialize stick-tables on backend capable proxies. This must not
+ * be done earlier because the data size may be discovered while parsing
+ * other proxies.
+ */
+ for (curproxy = proxy; curproxy; curproxy = curproxy->next) {
+ if (curproxy->state == PR_STSTOPPED)
+ continue;
+
+ if (!stktable_init(&curproxy->table)) {
+ Alert("Proxy '%s': failed to initialize stick-table.\n", curproxy->id);
+ cfgerr++;
+ }
+ }
+
pool2_hdr_idx = create_pool("hdr_idx",
global.tune.max_http_hdr * sizeof(struct hdr_idx_elem),
MEM_F_SHARED);