diff --git a/scripts/build-remote.pl.in b/scripts/build-remote.pl.in index c2f1fecd8..337374c21 100755 --- a/scripts/build-remote.pl.in +++ b/scripts/build-remote.pl.in @@ -263,7 +263,8 @@ if ($res != 0) { # or a temporary Nix problem). We propagate this to the caller to # allow it to distinguish between transient and permanent # failures. - print STDERR "build of `$drvPath' on `$hostName' failed with exit code $res\n"; + my $msg = readString($from); + print STDERR "error: $msg (on `$hostName')\n"; exit $res; } diff --git a/src/nix-store/nix-store.cc b/src/nix-store/nix-store.cc index 42012f2e7..f874ffead 100644 --- a/src/nix-store/nix-store.cc +++ b/src/nix-store/nix-store.cc @@ -1013,15 +1013,15 @@ static void opServe(Strings opFlags, Strings opArgs) settings.maxSilentTime = readInt(in); settings.buildTimeout = readInt(in); - int res = 0; try { MonitorFdHup monitor(in.fd); store->buildPaths(paths); + writeInt(0, out); } catch (Error & e) { - printMsg(lvlError, format("error: %1%") % e.msg()); - res = e.status; + assert(e.status); + writeInt(e.status, out); + writeString(e.msg(), out); } - writeInt(res, out); break; }