Skip to content
This repository was archived by the owner on Feb 8, 2021. It is now read-only.

Conversation

@pmorjan
Copy link
Contributor

@pmorjan pmorjan commented Feb 3, 2017

Executing Qemu via cmd.Run() installs it's own SIG handler
to wait until Qemu has become a daemon.
Under certain conditions the global SIGCHILD handler in containerd.go
catches the SIGCHILD from the qemu process and the process is gone.
Later on in /usr/local/go/src/os/wait_waitid.go
the syscall SYS_WAITID triggerd by cmd.Run() also starts waiting for the
process to become waitable but panics with 'waitid: no child processes'.
This patch removes the global SIGCHILD handler.

Signed-off-by: Peter Morjan peter.morjan@de.ibm.com

Executing Qemu via cmd.Run() installs it's own SIG handler
to wait until Qemu has become a daemon.
Under certain conditions the global SIGCHILD handler in containerd.go
catches the SIGCHILD from the qemu process and the process is gone.
Later on in /usr/local/go/src/os/wait_waitid.go
the syscall SYS_WAITID triggerd by cmd.Run() also starts waiting for the
process to become waitable but panics with 'waitid: no child processes'.
This patch removes the global SIGCHILD handler.

Signed-off-by: Peter Morjan <peter.morjan@de.ibm.com>
@laijs laijs merged commit bdf8778 into hyperhq:master Feb 4, 2017
jimoosciuc pushed a commit to jimoosciuc/runv that referenced this pull request May 26, 2020
remove global SIGCHILD handler to avoid conflicts
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants