Unverified Commit 1e511590 by Tycho Andersen Committed by Christian Brauner

start: don't log stop/continue for non-init processes

This non-init forwarding check should really be before all the log messages about "init continued" or "init stopped", since they will otherwise lie about some process that wasn't init being stopped or continued. Signed-off-by: 's avatarTycho Andersen <tycho@tycho.ws>
parent b59956a4
...@@ -314,6 +314,14 @@ static int signal_handler(int fd, uint32_t events, void *data, ...@@ -314,6 +314,14 @@ static int signal_handler(int fd, uint32_t events, void *data,
if (ret == 0 && info.si_pid == hdlr->pid) if (ret == 0 && info.si_pid == hdlr->pid)
hdlr->init_died = true; hdlr->init_died = true;
/* More robustness, protect ourself from a SIGCHLD sent
* by a process different from the container init.
*/
if (siginfo.ssi_pid != hdlr->pid) {
NOTICE("Received %d from pid %d instead of container init %d.", siginfo.ssi_signo, siginfo.ssi_pid, hdlr->pid);
return hdlr->init_died ? LXC_MAINLOOP_CLOSE : 0;
}
if (siginfo.ssi_signo != SIGCHLD) { if (siginfo.ssi_signo != SIGCHLD) {
kill(hdlr->pid, siginfo.ssi_signo); kill(hdlr->pid, siginfo.ssi_signo);
INFO("Forwarded signal %d to pid %d.", siginfo.ssi_signo, hdlr->pid); INFO("Forwarded signal %d to pid %d.", siginfo.ssi_signo, hdlr->pid);
...@@ -328,14 +336,6 @@ static int signal_handler(int fd, uint32_t events, void *data, ...@@ -328,14 +336,6 @@ static int signal_handler(int fd, uint32_t events, void *data,
return hdlr->init_died ? LXC_MAINLOOP_CLOSE : 0; return hdlr->init_died ? LXC_MAINLOOP_CLOSE : 0;
} }
/* More robustness, protect ourself from a SIGCHLD sent
* by a process different from the container init.
*/
if (siginfo.ssi_pid != hdlr->pid) {
NOTICE("Received SIGCHLD from pid %d instead of container init %d.", siginfo.ssi_pid, hdlr->pid);
return hdlr->init_died ? LXC_MAINLOOP_CLOSE : 0;
}
DEBUG("Container init process %d exited.", hdlr->pid); DEBUG("Container init process %d exited.", hdlr->pid);
return LXC_MAINLOOP_CLOSE; return LXC_MAINLOOP_CLOSE;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment