diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 01a9d027b..c970fbdca 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -2687,7 +2687,7 @@ void DerivationGoal::registerOutputs() outputs to allow hard links between outputs. */ InodesSeen inodesSeen; - Path checkSuffix = "-check"; + Path checkSuffix = ".check"; bool runDiffHook = settings.get("run-diff-hook", false); bool keepPreviousRound = settings.keepFailed || runDiffHook; @@ -2962,7 +2962,7 @@ void DerivationGoal::registerOutputs() return; } - /* Remove the -check directories if we're done. FIXME: keep them + /* Remove the .check directories if we're done. FIXME: keep them if the result was not determistic? */ if (curRound == nrRounds) { for (auto & i : drv->outputs) { diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc index ae03604fa..f8c4a0723 100644 --- a/src/libstore/gc.cc +++ b/src/libstore/gc.cc @@ -621,6 +621,11 @@ void LocalStore::tryToDelete(GCState & state, const Path & path) /* Don't delete .chroot directories for derivations that are currently being built. */ if (isActiveTempFile(state, path, ".chroot")) return; + + /* Don't delete .check directories for derivations that are + currently being built, because we may need to run + diff-hook. */ + if (isActiveTempFile(state, path, ".check")) return; } PathSet visited;