diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2023-07-08 12:34:25 -0400 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2023-07-08 12:37:41 -0400 |
commit | 6d8a8bb0104ccd9ba5199dc54647d58ce006324e (patch) | |
tree | 92dc3a9fc6d7bcd3dbaa3cff0f6068f6e8cc7cf8 /src | |
parent | 67ece2e709c44880bd634daa18c0f9d6862857f5 (diff) | |
download | postgresql-6d8a8bb0104ccd9ba5199dc54647d58ce006324e.tar.gz postgresql-6d8a8bb0104ccd9ba5199dc54647d58ce006324e.zip |
Fix tmpdir issues with commit e213de8e78
Commit e213de8e78 fixed a problem with path lengths to a tempdir on
Windows, but caused problems on at least some Unix systems where the
system tempdir is on a different file system. To work around this, only
used the system temdir for the destination of pg_replslot on Windows,
and otherwise restore the old behaviour.
Backpatch to relase 14 like the previous patch.
Problem exposed by a myriad of buildfarm animals.
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/pg_basebackup/t/010_pg_basebackup.pl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/bin/pg_basebackup/t/010_pg_basebackup.pl b/src/bin/pg_basebackup/t/010_pg_basebackup.pl index 5ac2ba1b17f..b9f5e1266b4 100644 --- a/src/bin/pg_basebackup/t/010_pg_basebackup.pl +++ b/src/bin/pg_basebackup/t/010_pg_basebackup.pl @@ -342,9 +342,13 @@ chmod_recursive("$pgdata", 0750, 0640); # Create a temporary directory in the system location. my $sys_tempdir = PostgreSQL::Test::Utils::tempdir_short; -rename("$pgdata/pg_replslot", "$sys_tempdir/pg_replslot") +# On Windows use the short location to avoid path length issues. +# Elsewhere use $tempdir to avoid file system boundary issues with moving. +my $tmploc = $windows_os ? $sys_tempdir : $tempdir; + +rename("$pgdata/pg_replslot", "$tmploc/pg_replslot") or BAIL_OUT "could not move $pgdata/pg_replslot"; -dir_symlink("$sys_tempdir/pg_replslot", "$pgdata/pg_replslot") +dir_symlink("$tmploc/pg_replslot", "$pgdata/pg_replslot") or BAIL_OUT "could not symlink to $pgdata/pg_replslot"; $node->start; |