* Propagate --max-silent-time to remote machines.

This commit is contained in:
Eelco Dolstra 2008-12-04 16:51:16 +00:00
parent bcfe98acff
commit 9ac3f5df9c
2 changed files with 7 additions and 2 deletions

View file

@ -23,8 +23,9 @@ use English '-no_match_vars';
my $loadIncreased = 0;
my ($amWilling, $localSystem, $neededSystem, $drvPath, $mustRun) = @ARGV;
my ($amWilling, $localSystem, $neededSystem, $drvPath, $mustRun, $maxSilentTime) = @ARGV;
$mustRun = 0 unless defined $mustRun;
$maxSilentTime = 0 unless defined $maxSilentTime;
sub sendReply {
my $reply = shift;
@ -184,12 +185,15 @@ system("NIX_SSHOPTS=\"$sshOpts\" nix-copy-closure $hostName $maybeSign $drvPath
print "BUILDING...\n";
my $buildFlags = "";
$buildFlags .= " --max-silent-time $maxSilentTime";
# `-tt' forces allocation of a pseudo-terminal. This is required to
# make the remote nix-store process receive a signal when the
# connection dies. Without it, the remote process might continue to
# run indefinitely (that is, until it next tries to write to
# stdout/stderr).
system("ssh -tt $sshOpts $hostName 'nix-store -rvvK $drvPath'") == 0
system("ssh -tt $sshOpts $hostName 'nix-store -rvvK $buildFlags $drvPath'") == 0
or die "remote build on $hostName failed: $?";
print "REMOTE BUILD DONE: $drvPath on $hostName\n";

View file

@ -1301,6 +1301,7 @@ DerivationGoal::HookReply DerivationGoal::tryBuildHook()
drv.platform.c_str(),
drvPath.c_str(),
(worker.canPostpone() ? (string) "0" : "1").c_str(),
(format("%1%") % maxSilentTime).str().c_str(),
NULL);
throw SysError(format("executing `%1%'") % buildHook);