From e24e2caaaf2dfd97bfa483800402f21049a42907 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 1 Jun 2016 16:40:49 +0200 Subject: [PATCH] Skip substituters with an incompatible store directory --- src/libstore/build.cc | 5 +++++ src/libstore/local-store.cc | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 7be1571cb..9316c069e 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -3132,6 +3132,11 @@ void SubstitutionGoal::tryNext() sub = subs.front(); subs.pop_front(); + if (sub->storeDir != worker.store.storeDir) { + tryNext(); + return; + } + try { // FIXME: make async info = sub->queryPathInfo(storePath); diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index 32f4e31e0..7588d4b07 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -787,6 +787,7 @@ PathSet LocalStore::querySubstitutablePaths(const PathSet & paths) { PathSet res; for (auto & sub : getDefaultSubstituters()) { + if (sub->storeDir != storeDir) continue; if (!sub->wantMassQuery()) continue; for (auto & path : paths) { if (res.count(path)) continue; @@ -804,6 +805,7 @@ void LocalStore::querySubstitutablePathInfos(const PathSet & paths, SubstitutablePathInfos & infos) { for (auto & sub : getDefaultSubstituters()) { + if (sub->storeDir != storeDir) continue; for (auto & path : paths) { if (infos.count(path)) continue; debug(format("checking substituter ā€˜%sā€™ for path ā€˜%sā€™")