aboutsummaryrefslogtreecommitdiff
path: root/src/build-remote/build-remote.cc
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2018-03-20 15:17:59 +0100
committerEelco Dolstra <edolstra@gmail.com>2018-03-20 15:25:26 +0100
commit1aca195e52d4fbf76908e6588b55ed8b5b25cfc8 (patch)
tree54c34371afebf63b886d3f5a9e747d5d237e0ab7 /src/build-remote/build-remote.cc
parent78d0c72b52835161fd15058b111aa05d69ce062b (diff)
Hack to get SSH error messages from build-remote
E.g. cannot build on 'ssh://mac1': cannot connect to 'mac1': bash: nix-store: command not found cannot build on 'ssh://mac2': cannot connect to 'mac2': Host key verification failed. cannot build on 'ssh://mac3': cannot connect to 'mac3': Received disconnect from 213... port 6001:2: Too many authentication failures Authentication failed.
Diffstat (limited to 'src/build-remote/build-remote.cc')
-rw-r--r--src/build-remote/build-remote.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/build-remote/build-remote.cc b/src/build-remote/build-remote.cc
index 6b294a4d2..9cd01bb61 100644
--- a/src/build-remote/build-remote.cc
+++ b/src/build-remote/build-remote.cc
@@ -191,8 +191,10 @@ int main (int argc, char * * argv)
storeUri = bestMachine->storeUri;
} catch (std::exception & e) {
- printError("unable to open SSH connection to '%s': %s; trying other available machines...",
- bestMachine->storeUri, e.what());
+ auto msg = chomp(drainFD(5, false));
+ printError("cannot build on '%s': %s%s",
+ bestMachine->storeUri, e.what(),
+ (msg.empty() ? "" : ": " + msg));
bestMachine->enabled = false;
continue;
}
@@ -202,6 +204,8 @@ int main (int argc, char * * argv)
}
connected:
+ close(5);
+
std::cerr << "# accept\n" << storeUri << "\n";
auto inputs = readStrings<PathSet>(source);