diff options
-rw-r--r-- | src/libstore/local-store.cc | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index 9049f33aa..17e2ebc38 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -1499,21 +1499,24 @@ bool LocalStore::verifyStore(bool checkContents, RepairFlag repair) auto fdGCLock = openGCLock(); FdLock gcLock(fdGCLock.get(), ltRead, true, "waiting for the big garbage collector lock..."); - StorePathSet store; - for (auto & i : readDirectory(realStoreDir)) { - try { - store.insert({i.name}); - } catch (BadStorePath &) { } - } + StorePathSet validPaths; - /* Check whether all valid paths actually exist. */ - printInfo("checking path existence..."); + { + StorePathSet store; + for (auto & i : readDirectory(realStoreDir)) { + try { + store.insert({i.name}); + } catch (BadStorePath &) { } + } - StorePathSet validPaths; - StorePathSet done; + /* Check whether all valid paths actually exist. */ + printInfo("checking path existence..."); - for (auto & i : queryAllValidPaths()) - verifyPath(i, store, done, validPaths, repair, errors); + StorePathSet done; + + for (auto & i : queryAllValidPaths()) + verifyPath(i, store, done, validPaths, repair, errors); + } /* Optionally, check the content hashes (slow). */ if (checkContents) { |