aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2018-09-07 16:35:48 +0200
committerEelco Dolstra <edolstra@gmail.com>2018-09-07 16:35:48 +0200
commit33c3f91885429b60cab551e761f297a640aff7d5 (patch)
tree87d629c7c53c83e4c930633484c4f0b887d382dd /src/libstore
parent91405986f4d076d08051ebe980af6ac6ba124323 (diff)
Handle queryPathInfo() failure from substituters when fallback is enabled
Fixes #1990.
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/build.cc7
-rw-r--r--src/libstore/local-store.cc5
2 files changed, 12 insertions, 0 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index cd37f7a3f..96ca28742 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -3682,6 +3682,13 @@ void SubstitutionGoal::tryNext()
} catch (InvalidPath &) {
tryNext();
return;
+ } catch (Error & e) {
+ if (settings.tryFallback) {
+ printError(e.what());
+ tryNext();
+ return;
+ }
+ throw;
}
/* Update the total expected download size. */
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc
index c91dbf241..5e392c237 100644
--- a/src/libstore/local-store.cc
+++ b/src/libstore/local-store.cc
@@ -880,6 +880,11 @@ void LocalStore::querySubstitutablePathInfos(const PathSet & paths,
narInfo ? narInfo->fileSize : 0,
info->narSize};
} catch (InvalidPath) {
+ } catch (Error & e) {
+ if (settings.tryFallback)
+ printError(e.what());
+ else
+ throw;
}
}
}