about summary refs log tree commit diff
path: root/src/build-remote/build-remote.cc
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2017-11-25T00·03+0100
committeraszlig <aszlig@nix.build>2017-11-25T00·34+0100
commit6567ab95a0b5cdca3f8b22dbbcd98ec5d18b63b0 (patch)
treef91f5e506c891d118c99a29fed50a2d3eb8b21b6 /src/build-remote/build-remote.cc
parent549c3706a5d63e10d908b43da8479331a844018f (diff)
build-remote: Fix missing log output
The storeUri variable in the build-remote hook is declared very much to
the start of the main function and a bunch of lines later, the same
variable gets checked via hasPrefix() but it gets assigned *after* that
check when the most suitable machine for the build was choosen.

So I guess this was just a typo in d16fd2497374671c92cb877f9570d65783a7
and what we really want is to either checkd the prefix *after* assigning
storeUri or use bestMachine->storeUri directly.

I choose the latter, because the former could introduce even more
regressions if the try block where the variable gets assigned terminates
early.

Nevertheless, the reason why the log output didn't work is because
hasPrefix() checked for "ssh://" in front of storeUri, but if the
storeUri isn't set correctly (or at all), we don't get the log file
descriptor set up properly, leading to no log output.

I've adjusted the remote-builds test to include a regression test for
this, so that we can make sure we get a build output when using remote
builds.

In addition to that I've tested this with two of my build farms and the
build logs are emitted correctly again.

Signed-off-by: aszlig <aszlig@nix.build>
Diffstat (limited to 'src/build-remote/build-remote.cc')
-rw-r--r--src/build-remote/build-remote.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/build-remote/build-remote.cc b/src/build-remote/build-remote.cc
index 6e05e165545d..445006b327fd 100644
--- a/src/build-remote/build-remote.cc
+++ b/src/build-remote/build-remote.cc
@@ -177,7 +177,7 @@ int main (int argc, char * * argv)
                     Activity act(*logger, lvlTalkative, actUnknown, fmt("connecting to '%s'", bestMachine->storeUri));
 
                     Store::Params storeParams;
-                    if (hasPrefix(storeUri, "ssh://")) {
+                    if (hasPrefix(bestMachine->storeUri, "ssh://")) {
                         storeParams["max-connections"] ="1";
                         storeParams["log-fd"] = "4";
                         if (bestMachine->sshKey != "")