forked from lix-project/lix
Fix regression in passAsFile
Caused by 8063fc497a
. If tmpDir !=
tmpDirInSandbox (typically when there are multiple concurrent builds
with the same name), the *Path attribute would not point to an
existing file. This caused Nixpkgs' writeTextFile to write an empty
file. In particular this showed up as hanging VM builds (because it
would run an empty run-nixos-vm script and then wait for it to finish
booting).
This commit is contained in:
parent
52120123a5
commit
b8258a4475
|
@ -1778,10 +1778,11 @@ void DerivationGoal::startBuilder()
|
||||||
if (passAsFile.find(i.first) == passAsFile.end()) {
|
if (passAsFile.find(i.first) == passAsFile.end()) {
|
||||||
env[i.first] = i.second;
|
env[i.first] = i.second;
|
||||||
} else {
|
} else {
|
||||||
Path p = tmpDir + "/.attr-" + std::to_string(fileNr++);
|
string fn = ".attr-" + std::to_string(fileNr++);
|
||||||
|
Path p = tmpDir + "/" + fn;
|
||||||
writeFile(p, i.second);
|
writeFile(p, i.second);
|
||||||
filesToChown.insert(p);
|
filesToChown.insert(p);
|
||||||
env[i.first + "Path"] = p;
|
env[i.first + "Path"] = tmpDirInSandbox + "/" + fn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue