BUG/MINOR: mworker: don't use unitialized mworker_proc struct

If the reload fail after the parsing of the configuration, the
mworker_proc structures are created for the processes it tried to
create.

The mworker_proc_list_to_env() function was exporting these unitialized
structures in the "HAPROXY_PROCESSES" environment variable which was
leading to this kind of output in "show proc":

4294967295      worker          [was: 1]        1               17879d 16h26m28s
This commit is contained in:
William Lallemand 2018-12-14 19:31:21 +01:00 committed by Willy Tarreau
parent 84cca66ea3
commit 6e0d8aee26

View File

@ -540,7 +540,8 @@ static void mworker_proc_list_to_env()
struct mworker_proc *child;
list_for_each_entry(child, &proc_list, list) {
memprintf(&msg, "%s|type=%c;fd=%d;pid=%d;rpid=%d;reloads=%d;timestamp=%d", msg ? msg : "", child->type, child->ipc_fd[0], child->pid, child->relative_pid, child->reloads, child->timestamp);
if (child->pid > -1)
memprintf(&msg, "%s|type=%c;fd=%d;pid=%d;rpid=%d;reloads=%d;timestamp=%d", msg ? msg : "", child->type, child->ipc_fd[0], child->pid, child->relative_pid, child->reloads, child->timestamp);
}
if (msg)
setenv("HAPROXY_PROCESSES", msg, 1);