daemon: Ignore '--keep-failed' for TCP/IP clients.

* nix/nix-daemon/nix-daemon.cc (performOp) <wopSetOptions>: When
'isRemoteConnection' is true, set 'settings.keepFailed' to zero.
* doc/guix.texi (Common Build Options): Document this behavior.
This commit is contained in:
Ludovic Courtès 2018-11-24 15:59:26 +01:00
parent 1b3083267c
commit bb640d6133
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 10 additions and 0 deletions

View File

@ -6229,6 +6229,10 @@ the end of the build log. This is useful when debugging build issues.
@xref{Debugging Build Failures}, for tips and tricks on how to debug @xref{Debugging Build Failures}, for tips and tricks on how to debug
build issues. build issues.
This option has no effect when connecting to a remote daemon with a
@code{guix://} URI (@pxref{The Store, the @code{GUIX_DAEMON_SOCKET}
variable}).
@item --keep-going @item --keep-going
@itemx -k @itemx -k
Keep going when some of the derivations fail to build; return only once Keep going when some of the derivations fail to build; return only once

View File

@ -565,6 +565,12 @@ static void performOp(bool trusted, unsigned int clientVersion,
case wopSetOptions: { case wopSetOptions: {
settings.keepFailed = readInt(from) != 0; settings.keepFailed = readInt(from) != 0;
if (isRemoteConnection)
/* When the client is remote, don't keep the failed build tree as
it is presumably inaccessible to the client and could fill up
our disk. */
settings.keepFailed = 0;
settings.keepGoing = readInt(from) != 0; settings.keepGoing = readInt(from) != 0;
settings.set("build-fallback", readInt(from) ? "true" : "false"); settings.set("build-fallback", readInt(from) ? "true" : "false");
verbosity = (Verbosity) readInt(from); verbosity = (Verbosity) readInt(from);