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.
This commit is contained in:
parent
38342df830
commit
75414c6989
@ -234,9 +234,13 @@ chmod_recursive("$pgdata", 0750, 0640);
|
|||||||
# Create a temporary directory in the system location.
|
# Create a temporary directory in the system location.
|
||||||
my $sys_tempdir = TestLib::tempdir_short;
|
my $sys_tempdir = TestLib::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";
|
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";
|
or BAIL_OUT "could not symlink to $pgdata/pg_replslot";
|
||||||
|
|
||||||
$node->start;
|
$node->start;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user