diff options
author | Shea Levy <shea@shealevy.com> | 2016-07-23T13·16-0400 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2016-07-23T13·16-0400 |
commit | 18b0808475a3d252ff3dc977e510271ea5c8c284 (patch) | |
tree | 592a83f99faa9d71353c502b4129b44c040246a2 /src/libstore | |
parent | 3c68a661f28ffb52efbca10146a059003ff579a7 (diff) |
Respect --keep-going when a substituter fails.
Fixes #977
Diffstat (limited to 'src/libstore')
-rw-r--r-- | src/libstore/build.cc | 6 |
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 |