forked from lix-project/lix
Properly report build errors on chrooted stores
When encountering a build error, Nix moves the output paths out of the chroot into their final location (for “easier debugging of build failures”). However this was broken for chroot stores as it was moving it to the _logical_ location, not the _physical_ one. Fix it by moving to the physical (_real_) location. Fix https://github.com/NixOS/nix/issues/8395
This commit is contained in:
parent
6e4570234d
commit
d16a1994fb
|
@ -357,7 +357,7 @@ bool LocalDerivationGoal::cleanupDecideWhetherDiskFull()
|
||||||
for (auto & [_, status] : initialOutputs) {
|
for (auto & [_, status] : initialOutputs) {
|
||||||
if (!status.known) continue;
|
if (!status.known) continue;
|
||||||
if (buildMode != bmCheck && status.known->isValid()) continue;
|
if (buildMode != bmCheck && status.known->isValid()) continue;
|
||||||
auto p = worker.store.printStorePath(status.known->path);
|
auto p = worker.store.toRealPath(status.known->path);
|
||||||
if (pathExists(chrootRootDir + p))
|
if (pathExists(chrootRootDir + p))
|
||||||
renameFile((chrootRootDir + p), p);
|
renameFile((chrootRootDir + p), p);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue