mirror of
https://github.com/NixOS/nix.git
synced 2024-11-25 08:12:29 +00:00
Eval cache: fix cache regressions
- Fix eval cache not being persisted in `nix develop` (since #10570)
- Don't attempt to commit cache transaction if there is no active transaction, which will spew errors in edge cases
- Drive-by: trivial typo fix
(cherry picked from commit e764ed31f6
)
This commit is contained in:
parent
707a6c550f
commit
6925a772d0
@ -66,7 +66,7 @@ struct ExtraPathInfoValue : ExtraPathInfo
|
||||
};
|
||||
|
||||
/**
|
||||
* An Installable which corresponds a Nix langauge value, in addition to
|
||||
* An Installable which corresponds a Nix language value, in addition to
|
||||
* a collection of \ref DerivedPath "derived paths".
|
||||
*/
|
||||
struct InstallableValue : Installable
|
||||
|
@ -95,7 +95,7 @@ struct AttrDb
|
||||
{
|
||||
try {
|
||||
auto state(_state->lock());
|
||||
if (!failed)
|
||||
if (!failed && state->txn->active)
|
||||
state->txn->commit();
|
||||
state->txn.reset();
|
||||
} catch (...) {
|
||||
|
@ -696,6 +696,10 @@ struct CmdDevelop : Common, MixEnvironment
|
||||
}
|
||||
}
|
||||
|
||||
// Release our references to eval caches to ensure they are persisted to disk, because
|
||||
// we are about to exec out of this process without running C++ destructors.
|
||||
getEvalState()->evalCaches.clear();
|
||||
|
||||
runProgramInStore(store, UseLookupPath::Use, shell, args, buildEnvironment.getSystem());
|
||||
#endif
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user