From 18b0808475a3d252ff3dc977e510271ea5c8c284 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Sat, 23 Jul 2016 09:16:08 -0400 Subject: [PATCH] Respect --keep-going when a substituter fails. Fixes #977 --- src/libstore/build.cc | 6 ++++-- 1 file 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