BUG/MINOR: errors: print_message: don't allocate startup logs ring
Don't call startup_logs_init() in order to allocate the startup logs ring again, if startup_logs pointer is NULL. Startup logs ring is allocated explicitly in step_init_1 routine, when the process starts, and it's freed explicitly for master process at the end of mworker_reexec scope. So, when we no longer have this pointer, let's just save the log message in the message buffer. Otherwise, in case of master process, we will allocate the startup logs ring again here and we will lost its address after execvp. No need to backport this fix as it's related to the latest master-worker refactoring.
This commit is contained in:
parent
bf8c871e26
commit
f0f03b98f7
|
@ -340,9 +340,6 @@ static void print_message(int use_usermsgs_ctx, const char *label, const char *f
|
||||||
}
|
}
|
||||||
|
|
||||||
if (global.mode & MODE_STARTING) {
|
if (global.mode & MODE_STARTING) {
|
||||||
if (unlikely(!startup_logs))
|
|
||||||
startup_logs_init();
|
|
||||||
|
|
||||||
if (likely(startup_logs)) {
|
if (likely(startup_logs)) {
|
||||||
struct ist m[3];
|
struct ist m[3];
|
||||||
|
|
||||||
|
@ -351,7 +348,8 @@ static void print_message(int use_usermsgs_ctx, const char *label, const char *f
|
||||||
m[2] = msg_ist;
|
m[2] = msg_ist;
|
||||||
|
|
||||||
ring_write(startup_logs, ~0, 0, 0, m, 3);
|
ring_write(startup_logs, ~0, 0, 0, m, 3);
|
||||||
}
|
} else
|
||||||
|
usermsgs_put(&msg_ist);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
usermsgs_put(&msg_ist);
|
usermsgs_put(&msg_ist);
|
||||||
|
|
Loading…
Reference in New Issue