Introduce wait_for_subscription_sync for TAP tests
Masahiko Sawada <sawada.mshk@gmail.com>
From: Masahiko Sawada <sawada.mshk@gmail.com>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-07-26T01:36:39Z
Lists: pgsql-hackers
Attachments
- v1-0001-Introduce-wait_for_subscription_sync-for-TAP-test.patch (application/octet-stream) patch v1-0001
Hi,
In tap tests for logical replication, we have the following code in many places:
$node_publisher->wait_for_catchup('tap_sub');
my $synced_query =
"SELECT count(1) = 0 FROM pg_subscription_rel WHERE srsubstate NOT
IN ('r', 's');";
$node_subscriber->poll_query_until('postgres', $synced_query)
or die "Timed out while waiting for subscriber to synchronize data";
Also, we sometime forgot to check either one, like we fixed in commit
1f50918a6fb02207d151e7cb4aae4c36de9d827c.
I think we can have a new function to wait for all subscriptions to
synchronize data. The attached patch introduce a new function
wait_for_subscription_sync(). With this function, we can replace the
above code with this one function as follows:
$node_subscriber->wait_for_subscription_sync($node_publisher, 'tap_sub');
Regards,
--
Masahiko Sawada
EDB: https://www.enterprisedb.com/
Commits
-
Fix recovery_prefetch with low maintenance_io_concurrency.
- adb466150b44 16.0 cited
-
Drop replication origin slots before tablesync worker exits.
- f6c5edb8abca 16.0 cited
-
Back-Patch "Add wait_for_subscription_sync for TAP tests."
- 15014b823203 15.0 landed
- e082ef9c4282 14.6 landed
- 5afa63f0aed9 13.9 landed
- 036642abc9fb 12.13 landed
- 63903546e5d6 11.18 landed
- f01e16b1987e 10.23 landed
-
Add wait_for_subscription_sync for TAP tests.
- 0c20dd33db16 16.0 landed
-
Remove duplicated wait for subscription sync from 007_ddl.pl.
- 7bf91ec0f3b4 16.0 landed
- 572baf2b3e20 15.0 landed
-
Fix intermetent test failure in 028_row_filter.pl.
- 1f50918a6fb0 15.0 cited
-
Refactor subscription tests to use PostgresNode's wait_for_catchup
- bbd3363e128d 11.0 cited