From b2b6cf3fc83f0e1625214ae31b0b088a266234bf Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 19 Mar 2007 09:16:47 +0000 Subject: [PATCH] * Undocumented option `gc-check-reachability' to allow reachability checking to be turned off on machines with way too many roots. --- src/libstore/gc.cc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc index 2c75b16f6..e04e9c107 100644 --- a/src/libstore/gc.cc +++ b/src/libstore/gc.cc @@ -118,13 +118,15 @@ Path addPermRoot(const Path & _storePath, const Path & _gcRoot, } /* Check that the root can be found by the garbage collector. */ - Roots roots = store->findRoots(); - if (roots.find(gcRoot) == roots.end()) - printMsg(lvlError, - format( - "warning: `%1%' is not in a directory where the garbage collector looks for roots; " - "therefore, `%2%' might be removed by the garbage collector") - % gcRoot % storePath); + if (queryBoolSetting("gc-check-reachability", true)) { + Roots roots = store->findRoots(); + if (roots.find(gcRoot) == roots.end()) + printMsg(lvlError, + format( + "warning: `%1%' is not in a directory where the garbage collector looks for roots; " + "therefore, `%2%' might be removed by the garbage collector") + % gcRoot % storePath); + } /* Grab the global GC root, causing us to block while a GC is in progress. This prevents the set of permanent roots from