Merge "debuggerd: call setsid in our children."

am: 371180bb72

Change-Id: Iee5d2f928d3f99d86657a838a9f73faa6674a237
This commit is contained in:
Josh Gao 2019-04-16 16:54:05 -07:00 committed by android-build-merger
commit 4cf60aea3c
2 changed files with 15 additions and 2 deletions

View file

@ -363,6 +363,12 @@ int main(int argc, char** argv) {
DefuseSignalHandlers();
InstallSigPipeHandler();
// There appears to be a bug in the kernel where our death causes SIGHUP to
// be sent to our process group if we exit while it has stopped jobs (e.g.
// because of wait_for_gdb). Use setsid to create a new process group to
// avoid hitting this.
setsid();
atrace_begin(ATRACE_TAG, "before reparent");
pid_t target_process = getppid();

View file

@ -268,8 +268,15 @@ static void create_vm_process() {
_exit(errno);
}
// Exit immediately on both sides of the fork.
// crash_dump is ptracing us, so it'll get to do whatever it wants in between.
// crash_dump is ptracing both sides of the fork; it'll let the parent exit,
// but keep the orphan stopped to peek at its memory.
// There appears to be a bug in the kernel where our death causes SIGHUP to
// be sent to our process group if we exit while it has stopped jobs (e.g.
// because of wait_for_gdb). Use setsid to create a new process group to
// avoid hitting this.
setsid();
_exit(0);
}