Repository: kudu Updated Branches: refs/heads/master 25a66cd27 -> 56aec48db
subprocess: use SIGKILL instead of SIGTERM death signal This addresses a potential source of test timeouts if a test starts a minicluster, pauses one of the daemons with SIGSTOP, and then exits unexpectedly (eg due to a CHECK failure). With the SIGTERM death signal, I found that this resulted in the test hanging on exit: apparently it delivered the SIGTERM to the stopped child and was then waiting on it indefinitely. After changing to SIGKILL I see the broken test failing from the FATAL as expected (rather than timing out). Change-Id: Icc411b8c031c1c117bdf0d82f272da2263c97d88 Reviewed-on: http://gerrit.cloudera.org:8080/4139 Reviewed-by: Adar Dembo <[email protected]> Tested-by: Kudu Jenkins Project: http://git-wip-us.apache.org/repos/asf/kudu/repo Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/62fd2546 Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/62fd2546 Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/62fd2546 Branch: refs/heads/master Commit: 62fd25466712129dc83a06877658c1a98379223f Parents: 25a66cd Author: Todd Lipcon <[email protected]> Authored: Fri Aug 26 16:41:57 2016 -0700 Committer: Todd Lipcon <[email protected]> Committed: Sat Aug 27 02:25:07 2016 +0000 ---------------------------------------------------------------------- src/kudu/util/subprocess.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kudu/blob/62fd2546/src/kudu/util/subprocess.cc ---------------------------------------------------------------------- diff --git a/src/kudu/util/subprocess.cc b/src/kudu/util/subprocess.cc index 01425a2..b270dcf 100644 --- a/src/kudu/util/subprocess.cc +++ b/src/kudu/util/subprocess.cc @@ -361,7 +361,7 @@ Status Subprocess::Start() { #if defined(__linux__) // TODO: prctl(PR_SET_PDEATHSIG) is Linux-specific, look into portable ways // to prevent orphans when parent is killed. - prctl(PR_SET_PDEATHSIG, SIGTERM); + prctl(PR_SET_PDEATHSIG, SIGKILL); #endif // stdin
