aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-02-02 16:27:31 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-02-02 16:27:31 +0000
commitb90daaaf6c1f52fe93f4f845da20b122cfea2936 (patch)
treede7769774a4d64448af95bef4f975131c08d03ae
parent6e2eaaec96e96ce593dd1e38d03fcf8d1f62eb55 (diff)
* When killing a build hook, kill the entire process group (as
intended). This ensures that any ssh child processes to remote machines are also killed, and thus the Nix process on the remote machine also exits. Without this, the remote Nix process will continue until it exists or until its stdout buffer gets full and it locks up. (Partially fixes NIX-35.)
-rw-r--r--src/libstore/build.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 193974bf8..123248c17 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -931,6 +931,7 @@ DerivationGoal::HookReply DerivationGoal::tryBuildHook()
}
/* parent */
+ pid.setSeparatePG(true);
logPipe.writeSide.close();
worker.childStarted(shared_from_this(),
pid, singleton<set<int> >(logPipe.readSide), false);