Fix test instability

On FreeBSD, the new test fails due to a WAL file being removed before
the standby has had the chance to copy it.  Fix by adding a replication
slot to prevent the removal until after the standby has connected.

Author: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Reported-by: Matthias van de Meent <boekewurm+postgres@gmail.com>
Discussion: https://postgr.es/m/CAEze2Wj5nau_qpjbwihvmXLfkAWOZ5TKdbnqOc6nKSiRJEoPyQ@mail.gmail.com
This commit is contained in:
Alvaro Herrera 2022-07-29 12:50:47 +02:00
parent 0234ed81e9
commit 59be1c942a
No known key found for this signature in database
GPG Key ID: 1C20ACB9D5C564AE
1 changed files with 3 additions and 1 deletions

View File

@ -26,6 +26,7 @@ sub test_tablespace
CREATE TABLESPACE source_ts LOCATION '';
CREATE TABLESPACE target_ts LOCATION '';
CREATE DATABASE template_db IS_TEMPLATE = true;
SELECT pg_create_physical_replication_slot('slot', true);
]);
my $backup_name = 'my_backup';
$node_primary->backup($backup_name);
@ -40,10 +41,11 @@ sub test_tablespace
# Make sure connection is made
$node_primary->poll_query_until('postgres',
'SELECT count(*) = 1 FROM pg_stat_replication');
$node_primary->safe_psql('postgres', "SELECT pg_drop_replication_slot('slot')");
$node_standby->safe_psql('postgres', 'CHECKPOINT');
# Do immediate shutdown just after a sequence of CREAT DATABASE / DROP
# Do immediate shutdown just after a sequence of CREATE DATABASE / DROP
# DATABASE / DROP TABLESPACE. This causes CREATE DATABASE WAL records
# to be applied to already-removed directories.
my $query = q[