hi hackers,

while working on the issue reported by Noah in [1], I realized that there is an
issue in 035_standby_logical_decoding.pl.

The issue is here:

"
$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);]);

# create the logical slots
create_logical_slots($node_standby, 'promotion_');

# create the logical slots on the cascading standby too
create_logical_slots($node_cascading_standby, 'promotion_');
"

We are not waiting for the standby/cascading standby to catchup (so that the 
create
database get replicated) before creating the replication slots (in testdb).

While, It's still not 100% sure that it will fix Noah's issue, I think this has 
to be fixed.

Please find, attached a patch proposal to do so.

Regards,

[1]: 
https://www.postgresql.org/message-id/20230411053657.GA1177147%40rfd.leadboat.com
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
diff --git a/src/test/recovery/t/035_standby_logical_decoding.pl 
b/src/test/recovery/t/035_standby_logical_decoding.pl
index ba98a18bd2..94a8384c31 100644
--- a/src/test/recovery/t/035_standby_logical_decoding.pl
+++ b/src/test/recovery/t/035_standby_logical_decoding.pl
@@ -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_');
 

Reply via email to