I don't know how to fix 82023d47^ on Windows[1][2], but in case it's useful, here's a small clue. I see that Perl's readlink() does in fact know how to read "junction points" on Windows[3], so if that was the only problem it might have been very close to working. One difference is that our own src/port/dirmod.c's pgreadlink() also strips \??\ from the returned paths (something to do with the various forms of NT path), but when I tried that:
my $olddir = readlink("$backup_path/pg_tblspc/$tsoid") || die "readlink $backup_path/pg_tblspc/$tsoid: $!"; + # strip NT path prefix (see src/port/dirmod.c pgreadlink()) + $olddir =~ s/^\\\?\?\\// if $PostgreSQL::Test::Utils::windows_os; ... it still broke[4]. So I'm not sure what's going on... [1] https://github.com/postgres/postgres/runs/24040897199 [2] https://api.cirrus-ci.com/v1/artifact/task/5550091866472448/testrun/build/testrun/pg_combinebackup/002_compare_backups/log/002_compare_backups_pitr1.log [3] https://github.com/Perl/perl5/blob/f936cd91ee430786a1bb6068a4a7c8362610dd5f/win32/win32.c#L2041 [4] https://cirrus-ci.com/task/6746621638082560