about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-02-02T16·27+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-02-02T16·27+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 193974bf83bd..123248c17670 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);