035_standby_logical_decoding: Add missing waits for replication
authorAndres Freund <andres@anarazel.de>
Tue, 11 Apr 2023 18:17:36 +0000 (11:17 -0700)
committerAndres Freund <andres@anarazel.de>
Tue, 11 Apr 2023 18:17:36 +0000 (11:17 -0700)
At least one slow buildfarm system (hoverfly) showed that the database
creation was not replicated before we try to create logical replication slots
on the standby, in that database.

Reported-by: Noah Misch <noah@leadboat.com>
Author: "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com>
Discussion: https://postgr.es/m/20230411053657.GA1177147@rfd.leadboat.com

src/test/recovery/t/035_standby_logical_decoding.pl

index ba98a18bd203eab1f09ac3f8e944410798020b1a..94a8384c31ca6d4d833f7d5809187a0fe81f29bc 100644 (file)
@@ -653,9 +653,15 @@ $node_standby->reload;
 $node_primary->psql('postgres', q[CREATE DATABASE testdb]);
 $node_primary->safe_psql('testdb', qq[CREATE TABLE decoding_test(x integer, y text);]);
 
+# Wait for the standby to catchup before creating the slots
+$node_primary->wait_for_replay_catchup($node_standby);
+
 # create the logical slots
 create_logical_slots($node_standby, 'promotion_');
 
+# Wait for the cascading standby to catchup before creating the slots
+$node_standby->wait_for_replay_catchup($node_cascading_standby, $node_primary);
+
 # create the logical slots on the cascading standby too
 create_logical_slots($node_cascading_standby, 'promotion_');