Write Hydra roots as regular files instead of symlinks
Note that this requires at least NixOS/Nix@1c208f2b7e.
This commit is contained in:
parent
7351752066
commit
69e3aa0438
|
@ -78,13 +78,9 @@ sub gcRootFor {
|
|||
|
||||
sub registerRoot {
|
||||
my ($path) = @_;
|
||||
|
||||
my $link = gcRootFor $path;
|
||||
|
||||
if (!-l $link) {
|
||||
symlink($path, $link)
|
||||
or die "cannot create GC root `$link' to `$path'";
|
||||
}
|
||||
open ROOT, ">$link" or die "cannot create GC root `$link' to `$path'";
|
||||
close ROOT;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ closedir DIR;
|
|||
my @actual_roots = ();
|
||||
foreach my $link (@roots) {
|
||||
next if $link eq "." || $link eq "..";
|
||||
push @actual_roots, readlink "$gcRootsDir/$link";
|
||||
push @actual_roots, $Nix::Config::storeDir . "/" . $link;
|
||||
}
|
||||
|
||||
# Don't delete a nix-cache-info file, if present
|
||||
|
|
|
@ -130,10 +130,10 @@ foreach my $link (@roots) {
|
|||
# Don't delete roots that are less than a day old, to prevent
|
||||
# a race where hydra-eval-jobs has added a root but
|
||||
# hydra-evaluator hasn't added them to the database yet.
|
||||
my $st = lstat("$gcRootsDir/$link");
|
||||
if (!defined $st) {
|
||||
my $st = lstat("$gcRootsDir/$link");
|
||||
if (!defined $st) {
|
||||
print STDERR "skipping link $link: $!\n";
|
||||
} elsif ($st->ctime < $now - 24 * 60 * 60) {
|
||||
} elsif ($st->ctime < $now - 24 * 60 * 60) {
|
||||
print STDERR "removing root $path\n";
|
||||
$rootsDeleted++;
|
||||
unlink "$gcRootsDir/$link" or warn "cannot remove $gcRootsDir/$link";
|
||||
|
|
Loading…
Reference in a new issue