diff --git a/src/cli.c b/src/cli.c index ebf47cea7..1d187da67 100644 --- a/src/cli.c +++ b/src/cli.c @@ -3737,8 +3737,10 @@ int mworker_cli_attach_server(char **errmsg) error: - list_for_each_entry(child, &proc_list, list) + list_for_each_entry(child, &proc_list, list) { + srv_detach(child->srv); srv_drop(child->srv); + } free(msg); return -1; diff --git a/src/server.c b/src/server.c index a86047fdf..db098a800 100644 --- a/src/server.c +++ b/src/server.c @@ -3433,6 +3433,7 @@ static int _srv_parse_tmpl_init(struct server *srv, struct proxy *px) free_check(&newsrv->agent); free_check(&newsrv->check); MT_LIST_DELETE(&newsrv->global_list); + srv_detach(newsrv); } srv_drop(newsrv); return i - srv->tmpl_info.nb_low;