From 6866f3f33f970989843a1dddb71489d9b1ad3e28 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 1 May 2015 19:09:08 +0200 Subject: [PATCH] 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. --- src/cfgparse.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/cfgparse.c b/src/cfgparse.c index ce0517c6a..1470ceaf9 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -7871,20 +7871,6 @@ out_uri_auth_compat: } } - /* 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. */ @@ -7938,6 +7924,20 @@ out_uri_auth_compat: } } + /* 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++; + } + } + if (mailers) { struct mailers *curmailers = mailers, **last; struct mailer *m, *mb;