Test Scenario 1. INSERT data so tablesync should copy something 2. While paused in LogicalRepSyncTableStart do a DROP TABLE to rip the rug out from under the sync worker! 3. Continue the sync worker.... see what happens ============== ## ## Insert data ## [postgres@CentOS7-x64 ~]$ psql -d test_pub -c "INSERT INTO test_tab VALUES(1, 'foo');" INSERT 0 1 ## ## SUBSCRIBE and continue to breakpoint at top of tablesync function LogicalRepSyncTableStart ## [postgres@CentOS7-x64 ~]$ psql -d test_sub -p 54321 -c "CREATE SUBSCRIPTION tap_sub CONNECTION 'host=localhost dbname=test_pub application_name=tap_sub' PUBLICATION tap_pub;" 2021-02-03 11:46:07.207 AEDT [8298] LOG: logical decoding found consistent point at 0/1654698 2021-02-03 11:46:07.207 AEDT [8298] DETAIL: There are no running transactions. 2021-02-03 11:46:07.207 AEDT [8298] STATEMENT: CREATE_REPLICATION_SLOT "tap_sub" LOGICAL pgoutput NOEXPORT_SNAPSHOT NOTICE: created replication slot "tap_sub" on publisher CREATE SUBSCRIPTION 2021-02-03 11:46:07.218 AEDT [8302] LOG: logical replication apply worker for subscription "tap_sub" has started 2021-02-03 11:46:07.218 AEDT [8302] LOG: !!>> The apply worker process has PID = 8302 [postgres@CentOS7-x64 ~]$ 2021-02-03 11:46:07.224 AEDT [8306] LOG: starting logical decoding for slot "tap_sub" 2021-02-03 11:46:07.224 AEDT [8306] DETAIL: Streaming transactions committing after 0/16546D0, reading WAL from 0/1654698. 2021-02-03 11:46:07.224 AEDT [8306] STATEMENT: START_REPLICATION SLOT "tap_sub" LOGICAL 0/0 (proto_version '2', publication_names '"tap_pub"') 2021-02-03 11:46:07.225 AEDT [8306] LOG: logical decoding found consistent point at 0/1654698 2021-02-03 11:46:07.225 AEDT [8306] DETAIL: There are no running transactions. 2021-02-03 11:46:07.225 AEDT [8306] STATEMENT: START_REPLICATION SLOT "tap_sub" LOGICAL 0/0 (proto_version '2', publication_names '"tap_pub"') 2021-02-03 11:46:07.225 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:07.225 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:07.229 AEDT [8307] LOG: logical replication table synchronization worker for subscription "tap_sub", table "test_tab" has started 2021-02-03 11:46:07.229 AEDT [8307] LOG: !!>> The tablesync worker process has PID = 8307 2021-02-03 11:46:07.229 AEDT [8307] LOG: !!>> Sleeping 30 secs. For debugging, attach to process 8307 now! ## PID 8302 is apply worker ## PID 8307 is tablesync worker 2021-02-03 11:46:08.241 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:08.241 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:09.253 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:09.253 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:10.255 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:10.255 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:11.258 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:11.258 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:12.263 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:12.263 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:13.265 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:13.265 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:14.275 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:14.275 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:15.280 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:15.280 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:16.282 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:16.282 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:17.284 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:17.284 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:18.285 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:18.286 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:19.287 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:19.287 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:20.288 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:20.288 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:21.290 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:21.290 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:22.291 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:22.291 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:23.293 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:23.293 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:24.295 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:24.295 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:25.297 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:25.297 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:26.308 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:26.308 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:27.309 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:27.309 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:28.311 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:28.311 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:29.313 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:29.313 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:30.315 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:30.315 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:31.333 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:31.333 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:32.335 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:32.335 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:33.336 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:33.336 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:34.337 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:34.337 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:35.339 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:35.339 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:36.362 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:36.362 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:37.239 AEDT [8307] LOG: !!>> tablesync worker: About to call LogicalRepSyncTableStart to do initial syncing 2021-02-03 11:46:37.364 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:37.364 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:37.364 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:37.364 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:38.371 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:38.371 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:39.373 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:39.373 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:40.388 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:40.388 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:41.389 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:41.390 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:42.391 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:42.391 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:43.393 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:43.394 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:44.410 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:44.410 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:45.411 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:45.411 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:46.412 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:46.412 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:47.413 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:47.413 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:48.414 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:48.414 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:49.415 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:49.415 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables ## ## While paused in debugger for the tablesync worker do DROP TABLE on subscriber. ## Note we have not done any ALTER SUBSCRIPTION. ## psql -d test_sub -p 54321 -c "DROP TABLE test_tab;" ## ## But now (since V25 fix) the DROP is disallowed while tablesync not in the READY state... ## 2021-02-03 11:46:50.341 AEDT [9648] ERROR: could not drop relation mapping for subscription "tap_sub" 2021-02-03 11:46:50.341 AEDT [9648] DETAIL: Table synchronization for relation "test_tab" is in progress and is in state "i". 2021-02-03 11:46:50.341 AEDT [9648] HINT: Use ALTER SUBSCRIPTION ... ENABLE to enable subscription if not already enabled or use DROP SUBSCRIPTION ... to drop the subscription. 2021-02-03 11:46:50.341 AEDT [9648] STATEMENT: DROP TABLE test_tab; ERROR: could not drop relation mapping for subscription "tap_sub" DETAIL: Table synchronization for relation "test_tab" is in progress and is in state "i". HINT: Use ALTER SUBSCRIPTION ... ENABLE to enable subscription if not already enabled or use DROP SUBSCRIPTION ... to drop the subscription. ## ## Now let the tablesync function continue... ## [postgres@CentOS7-x64 ~]$ 2021-02-03 11:46:50.416 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:50.416 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:51.417 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:51.417 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:52.418 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:52.418 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:53.420 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:53.420 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:54.420 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:54.420 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:55.422 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:55.422 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:56.422 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:56.422 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:57.350 AEDT [9862] LOG: logical decoding found consistent point at 0/16546D0 2021-02-03 11:46:57.350 AEDT [9862] DETAIL: There are no running transactions. 2021-02-03 11:46:57.350 AEDT [9862] STATEMENT: CREATE_REPLICATION_SLOT "pg_16398_sync_16385" LOGICAL pgoutput USE_SNAPSHOT 2021-02-03 11:46:57.359 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:57.359 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:46:57.367 AEDT [8307] LOG: !!>> tablesync worker: wait for CATCHUP state notification 2021-02-03 11:46:57.367 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:46:57.367 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:07.352 AEDT [8307] LOG: !!>> tablesync worker: received CATCHUP state notification 2021-02-03 11:47:07.352 AEDT [8307] LOG: !!>> tablesync worker: Returned from LogicalRepSyncTableStart 2021-02-03 11:47:07.352 AEDT [9862] LOG: starting logical decoding for slot "pg_16398_sync_16385" 2021-02-03 11:47:07.352 AEDT [9862] DETAIL: Streaming transactions committing after 0/1654708, reading WAL from 0/16546D0. 2021-02-03 11:47:07.352 AEDT [9862] STATEMENT: START_REPLICATION SLOT "pg_16398_sync_16385" LOGICAL 0/1654708 (proto_version '2', publication_names '"tap_pub"') 2021-02-03 11:47:07.352 AEDT [9862] LOG: logical decoding found consistent point at 0/16546D0 2021-02-03 11:47:07.352 AEDT [9862] DETAIL: There are no running transactions. 2021-02-03 11:47:07.352 AEDT [9862] STATEMENT: START_REPLICATION SLOT "pg_16398_sync_16385" LOGICAL 0/1654708 (proto_version '2', publication_names '"tap_pub"') 2021-02-03 11:47:09.275 AEDT [8307] LOG: !!>> tablesync worker: LogicalRepApplyLoop 2021-02-03 11:47:09.275 AEDT [8307] LOG: !!>> tablesync worker: called process_syncing_tables 2021-02-03 11:47:15.264 AEDT [8307] LOG: logical replication table synchronization worker for subscription "tap_sub", table "test_tab" has finished ## ## Tablesync worker completed normally ## 2021-02-03 11:47:15.265 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:15.265 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:16.270 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:16.270 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:17.272 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:17.272 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:18.276 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:18.276 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:19.291 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:19.291 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:20.297 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:20.297 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:21.299 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:21.299 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:22.339 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:22.339 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:23.341 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:23.341 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:24.347 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:24.347 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:25.352 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:25.352 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:26.357 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:26.357 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:27.361 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:27.362 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:27.362 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:27.362 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:28.367 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:28.367 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:29.368 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:29.368 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:30.370 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:30.370 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:31.371 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:31.371 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:32.374 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:32.374 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:33.376 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:33.376 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:34.380 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:34.380 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:35.381 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:35.381 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:36.383 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:36.384 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:37.385 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:37.385 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables ## ## There are no tablesync slots lying around ## psql -d test_pub -c "select * from pg_replication_slots;"2021-02-03 11:47:38.394 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:38.394 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables slot_name | plugin | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flus h_lsn | wal_status | safe_wal_size -----------+----------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+--------------- ------+------------+--------------- tap_sub | pgoutput | logical | 16384 | test_pub | f | t | 8306 | | 518 | 0/16546D0 | 0/1654708 | reserved | (1 row) [postgres@CentOS7-x64 ~]$ 2021-02-03 11:47:39.398 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:39.399 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:40.400 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:40.400 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:41.405 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:41.405 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:42.406 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:42.406 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:43.417 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:43.417 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:44.418 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:44.418 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:45.419 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:45.419 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:46.420 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:46.420 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:47.427 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:47.427 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:48.428 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:48.428 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:49.429 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:49.429 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:50.430 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:50.430 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:51.431 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:51.431 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:52.432 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:52.432 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:53.433 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:53.433 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:54.435 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:54.435 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:55.435 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:55.435 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:56.436 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:56.436 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:57.437 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:57.437 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:57.437 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:57.437 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:58.438 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:58.438 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:47:59.439 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:47:59.439 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables ## ## Drop the subscription ## psql -d test_sub -p 54321 -c "DROP SUBSCRIPTION tap_sub;"2021-02-03 11:48:00.440 AEDT [8302] LOG: !!>> apply worker: LogicalRepApplyLoop 2021-02-03 11:48:00.440 AEDT [8302] LOG: !!>> apply worker: called process_syncing_tables 2021-02-03 11:48:00.566 AEDT [8302] FATAL: terminating logical replication worker due to administrator command 2021-02-03 11:48:00.567 AEDT [1646] LOG: background worker "logical replication worker" (PID 8302) exited with exit code 1 NOTICE: dropped replication slot "tap_sub" on publisher DROP SUBSCRIPTION ## ## All slots are cleaned up ## [postgres@CentOS7-x64 ~]$ psql -d test_pub -c "select * from pg_replication_slots;" slot_name | plugin | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flush_ lsn | wal_status | safe_wal_size -----------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+----------------- ----+------------+--------------- (0 rows) ## ## The data is replicated correctly ## ## (Publisher side) [postgres@CentOS7-x64 ~]$ psql -d test_pub -c "SELECT * FROM test_tab;" a | b | c | d ---+-----+------------------------------+----- 1 | foo | 2021-02-03 11:44:28.43011+11 | 999 (1 row) ## (Subscriber side) [postgres@CentOS7-x64 ~]$ psql -d test_sub -p 54321 -c "SELECT * FROM test_tab;" a | b | c | d ---+-----+------------------------------+----- 1 | foo | 2021-02-03 11:44:28.43011+11 | 999 (1 row) [postgres@CentOS7-x64 ~]$