If an error occurs during a dynamic server creation with tracking, it
must be removed from the tracked list. This operation is not thread-safe
and thus must be conducted under the thread isolation.
Track support for dynamic servers has been introduced in this release.
This does not need to be backported.
return 0;
out:
+ if (srv && srv->track)
+ release_server_track(srv);
+
thread_release();
if (!usermsgs_empty())
cli_err(appctx, usermsgs_str());
- if (srv) {
- release_server_track(srv);
+ if (srv)
free_server(srv);
- }
return 1;
}