Skip to content

Commit 5193ca8

Browse files
committed
Symlink pg_replslot robustly on Windows in pg_basebackup test
This reverts commit e9f15bc. Instead of a hacky solution that didn't work on Windows, we avoid trying to move the directory possibly across drives, and instead remove it and recreate it in the new location. Discussion: https://postgr.es/m/20240707070243.sb77kp4ubowauctz@awork3.anarazel.de Backpatch to release 14 like the previous patch.
1 parent 64f34eb commit 5193ca8

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/bin/pg_basebackup/t/010_pg_basebackup.pl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -359,13 +359,13 @@
359359
# Create a temporary directory in the system location.
360360
my $sys_tempdir = PostgreSQL::Test::Utils::tempdir_short;
361361

362-
# On Windows use the short location to avoid path length issues.
363-
# Elsewhere use $tempdir to avoid file system boundary issues with moving.
364-
my $tmploc = $windows_os ? $sys_tempdir : $tempdir;
365-
366-
rename("$pgdata/pg_replslot", "$tmploc/pg_replslot")
367-
or BAIL_OUT "could not move $pgdata/pg_replslot";
368-
dir_symlink("$tmploc/pg_replslot", "$pgdata/pg_replslot")
362+
# pg_replslot should be empty. We remove it and recreate it in $sys_tempdir
363+
# before symlinking, in order to avoid possibly trying to move things across
364+
# drives.
365+
rmdir("$pgdata/pg_replslot")
366+
or BAIL_OUT "could not remove $pgdata/pg_replslot";
367+
mkdir("$sys_tempdir/pg_replslot"); # if this fails the symlink will fail
368+
dir_symlink("$sys_tempdir/pg_replslot", "$pgdata/pg_replslot")
369369
or BAIL_OUT "could not symlink to $pgdata/pg_replslot";
370370

371371
$node->start;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy