Prevent inputs from being garbage collected during evaluation
There is still a tiny window between the calls to nix-prefetch-* and addTempRoot. This could be eliminated by adding a "-o" option to nix-prefetch-*, or by not using those scripts at all (and use addToStore directly).
This commit is contained in:
@@ -36,6 +36,8 @@ sub fetchInput {
|
||||
(my $cachedInput) = $self->{db}->resultset('CachedBazaarInputs')->search(
|
||||
{uri => $uri, revision => $revision});
|
||||
|
||||
addTempRoot($cachedInput->storepath) if defined $cachedInput;
|
||||
|
||||
if (defined $cachedInput && isValidPath($cachedInput->storepath)) {
|
||||
$storePath = $cachedInput->storepath;
|
||||
$sha256 = $cachedInput->sha256hash;
|
||||
@@ -53,6 +55,9 @@ sub fetchInput {
|
||||
|
||||
($sha256, $storePath) = split ' ', $stdout;
|
||||
|
||||
# FIXME: time window between nix-prefetch-bzr and addTempRoot.
|
||||
addTempRoot($storePath);
|
||||
|
||||
txn_do($self->{db}, sub {
|
||||
$self->{db}->resultset('CachedBazaarInputs')->create(
|
||||
{ uri => $uri
|
||||
|
Reference in New Issue
Block a user