aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2021-07-19 17:21:07 -0400
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2021-07-19 17:21:07 -0400
commit1e8751380836056fdf546433dcf0328bc18c9313 (patch)
tree0aa06c929569239fa812aab5a553a9922d8d6543 /src
parent40295d158fd4d462c55e6debae19dcd43ab530a6 (diff)
downloadpostgresql-1e8751380836056fdf546433dcf0328bc18c9313.tar.gz
postgresql-1e8751380836056fdf546433dcf0328bc18c9313.zip
Make new replication slot test code even less racy
Further fix the test code in ead9e51e8236, this time by waiting until the checkpoint has completed before moving on; this ensures that the WAL segment removal has already happened when we create the next slot. Author: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Discussion: https://postgr.es/m/20210719.111318.2042379313472032754.horikyota.ntt@gmail.com
Diffstat (limited to 'src')
-rw-r--r--src/test/recovery/t/019_replslot_limit.pl15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/test/recovery/t/019_replslot_limit.pl b/src/test/recovery/t/019_replslot_limit.pl
index 026da02ff15..54ddcef2bbd 100644
--- a/src/test/recovery/t/019_replslot_limit.pl
+++ b/src/test/recovery/t/019_replslot_limit.pl
@@ -11,7 +11,7 @@ use TestLib;
use PostgresNode;
use File::Path qw(rmtree);
-use Test::More tests => $TestLib::windows_os ? 15 : 19;
+use Test::More tests => $TestLib::windows_os ? 16 : 20;
use Time::HiRes qw(usleep);
$ENV{PGDATABASE} = 'postgres';
@@ -201,6 +201,19 @@ $result = $node_primary->safe_psql(
is($result, "rep1|f|t|lost|",
'check that the slot became inactive and the state "lost" persists');
+# Wait until current checkpoint ends
+my $checkpoint_ended = 0;
+for (my $i = 0; $i < 10000; $i++)
+{
+ if (find_in_log($node_primary, "checkpoint complete: ", $logstart))
+ {
+ $checkpoint_ended = 1;
+ last;
+ }
+ usleep(100_000);
+}
+ok($checkpoint_ended, 'waited for checkpoint to end');
+
# The invalidated slot shouldn't keep the old-segment horizon back;
# see bug #17103: https://postgr.es/m/17103-004130e8f27782c9@postgresql.org
# Test for this by creating a new slot and comparing its restart LSN