about summary refs log tree commit diff
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2016-07-23T13·16-0400
committerShea Levy <shea@shealevy.com>2016-07-23T13·16-0400
commit18b0808475a3d252ff3dc977e510271ea5c8c284 (patch)
tree592a83f99faa9d71353c502b4129b44c040246a2
parent3c68a661f28ffb52efbca10146a059003ff579a7 (diff)
Respect --keep-going when a substituter fails.
Fixes #977
-rw-r--r--src/libstore/build.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 0a4df8ca7af4..af2c908c30db 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -1075,8 +1075,10 @@ void DerivationGoal::outputsSubstituted()
 {
     trace("all outputs substituted (maybe)");
 
-    if (nrFailed > 0 && nrFailed > nrNoSubstituters + nrIncompleteClosure && !settings.tryFallback)
-        throw Error(format("some substitutes for the outputs of derivation ‘%1%’ failed (usually happens due to networking issues); try ‘--fallback’ to build derivation from source ") % drvPath);
+    if (nrFailed > 0 && nrFailed > nrNoSubstituters + nrIncompleteClosure && !settings.tryFallback) {
+        done(BuildResult::TransientFailure, (format("some substitutes for the outputs of derivation ‘%1%’ failed (usually happens due to networking issues); try ‘--fallback’ to build derivation from source ") % drvPath).str());
+        return;
+    }
 
     /*  If the substitutes form an incomplete closure, then we should
         build the dependencies of this derivation, but after that, we