Truncate in synchronous logical replication failed - Mailing list pgsql-hackers

From tanghy.fnst@fujitsu.com
Subject Truncate in synchronous logical replication failed
Date
Msg-id OS0PR01MB6113C2499C7DC70EE55ADB82FB759@OS0PR01MB6113.jpnprd01.prod.outlook.com
Whole thread Raw
Responses Re: Truncate in synchronous logical replication failed  (Amit Kapila <amit.kapila16@gmail.com>)
List pgsql-hackers
Hi

I met a problem in synchronous logical replication. The client hangs when TRUNCATE TABLE at publisher.

Example of the procedure:
------publisher------
create table test (a int primary key);
create publication pub for table test;

------subscriber------
create table test (a int primary key);
create subscription sub connection 'dbname=postgres' publication pub;

Then, set synchronous_standby_names = 'sub’  on publisher, and reload publisher.

------publisher------
truncate test;

Then the client of publisher will wait for a long time. A moment later, the publisher and subscriber will report
followingerrors. 
Subscriber log
2021-04-07 12:13:07.700 CST [3542235] logical replication worker ERROR:  terminating logical replication worker due to
timeout
2021-04-07 12:13:07.722 CST [3542217] postmaster LOG:  background worker "logical replication worker" (PID 3542235)
exitedwith exit code 1 
2021-04-07 12:13:07.723 CST [3542357] logical replication worker LOG:  logical replication apply worker for
subscription"sub" has started 
2021-04-07 12:13:07.745 CST [3542357] logical replication worker ERROR:  could not start WAL streaming: ERROR:
replicationslot "sub" is active for PID 3542236 
Publisher log
2021-04-07 12:13:07.745 CST [3542358] walsender ERROR:  replication slot "sub" is active for PID 3542236
2021-04-07 12:13:07.745 CST [3542358] walsender STATEMENT:  START_REPLICATION SLOT "sub" LOGICAL 0/169ECE8
(proto_version'2', publication_names '"pub"') 

I checked the PG-DOC, found it says that “Replication of TRUNCATE commands is supported”[1], so maybe TRUNCATE is not
supportedin synchronous logical replication?  

If my understanding is right, maybe PG-DOC can be modified like this. Any thought?
Replication of TRUNCATE commands is supported
->
Replication of TRUNCATE commands is supported in asynchronous mode

[1]https://www.postgresql.org/docs/devel/logical-replication-restrictions.html

Regards,
Tang



pgsql-hackers by date:

Previous
From: "osumi.takamichi@fujitsu.com"
Date:
Subject: RE: Disable WAL logging to speed up data loading
Next
From: Amul Sul
Date:
Subject: Re: [Patch] ALTER SYSTEM READ ONLY