From: Amaury Denoyelle Date: Mon, 14 Jun 2021 15:04:25 +0000 (+0200) Subject: BUG/MINOR: stick-table: insert srv in used_name tree even with fixed id X-Git-Tag: v2.5-dev1~132 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=077c6b8d29ba63a625648ebb73bf151a793f0096;p=thirdparty%2Fhaproxy.git BUG/MINOR: stick-table: insert srv in used_name tree even with fixed id If the server id is fixed in the configuration, it is immediately inserted in the 'used_server_id' backend tree via srv_parse_id. On check_config_validity, the dynamic id generation is thus skipped for fixed-id servers. However, it must nevertheless be inserted in the 'used_server_name' backend tree. This bug seems to be not noticeable for the user. Indeed, before the fix, the search in sticking_rule_find_target always returned NULL for the name, then the fallback search with server id succeeded, so the persistence is properly applied. However with the fix the fallback search is not executed anymore, which saves from the locking of STK_SESS. This should be backported up to 2.0. --- diff --git a/src/cfgparse.c b/src/cfgparse.c index 906ab076f8..3011f655ea 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -3496,9 +3496,10 @@ out_uri_auth_compat: next_id = get_next_id(&curproxy->conf.used_server_id, next_id); newsrv->conf.id.key = newsrv->puid = next_id; eb32_insert(&curproxy->conf.used_server_id, &newsrv->conf.id); - newsrv->conf.name.key = newsrv->id; - ebis_insert(&curproxy->conf.used_server_name, &newsrv->conf.name); } + newsrv->conf.name.key = newsrv->id; + ebis_insert(&curproxy->conf.used_server_name, &newsrv->conf.name); + next_id++; newsrv = newsrv->next; }