mirror of
https://github.com/NixOS/nix.git
synced 2024-11-25 00:02:25 +00:00
* Merge critical bug fixes from trunk (r2536, r2537).
This commit is contained in:
parent
20cb2d80c6
commit
937a54ae4a
@ -76,7 +76,7 @@ addToQueue $targetPath;
|
||||
|
||||
sub isValidPath {
|
||||
my $p = shift;
|
||||
system "@bindir@/nix-store --isvalid '$p' 2> /dev/null";
|
||||
system "@bindir@/nix-store --check-validity '$p' 2> /dev/null";
|
||||
return $? == 0;
|
||||
}
|
||||
|
||||
|
@ -737,10 +737,10 @@ void deleteFromStore(const Path & _path)
|
||||
Transaction txn(nixDB);
|
||||
if (isValidPathTxn(txn, path)) {
|
||||
PathSet referers = getReferers(txn, path);
|
||||
if (referers.size() > 1 ||
|
||||
(referers.size() == 1 &&
|
||||
*referers.begin() != path))
|
||||
throw Error(format("cannot delete path `%1%' because it is in use") % path);
|
||||
for (PathSet::iterator i = referers.begin();
|
||||
i != referers.end(); ++i)
|
||||
if (*i != path && isValidPathTxn(txn, *i))
|
||||
throw Error(format("cannot delete path `%1%' because it is in use by path `%2%'") % path % *i);
|
||||
invalidatePath(txn, path);
|
||||
}
|
||||
txn.commit();
|
||||
|
Loading…
Reference in New Issue
Block a user