aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2016-07-23 09:16:08 -0400
committerShea Levy <shea@shealevy.com>2016-07-23 09:16:08 -0400
commit18b0808475a3d252ff3dc977e510271ea5c8c284 (patch)
tree592a83f99faa9d71353c502b4129b44c040246a2 /src/libstore
parent3c68a661f28ffb52efbca10146a059003ff579a7 (diff)
Respect --keep-going when a substituter fails.
Fixes #977
Diffstat (limited to 'src/libstore')
-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 0a4df8ca7..af2c908c3 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