Disallow changing slot's failover option in transaction block - Mailing list pgsql-hackers

From Zhijie Hou (Fujitsu)
Subject Disallow changing slot's failover option in transaction block
Date
Msg-id OS0PR01MB57165542B09DFA4943830BF294082@OS0PR01MB5716.jpnprd01.prod.outlook.com
Whole thread Raw
Responses Re: Disallow changing slot's failover option in transaction block  (Bertrand Drouvot <bertranddrouvot.pg@gmail.com>)
RE: Disallow changing slot's failover option in transaction block  ("Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>)
List pgsql-hackers
Hi,

Kuroda-San reported an issue off-list that:

If user execute ALTER SUBSCRIPTION SET (failover) command inside a txn block
and rollback, only the subscription option change can be rolled back, while the
replication slot's failover change is preserved.

This is because ALTER SUBSCRIPTION SET (failover) command internally executes
the replication command ALTER_REPLICATION_SLOT to change the replication slot's
failover property, but this replication command execution cannot be
rollback.

To fix it, I think we can prevent user from executing ALTER SUBSCRIPTION set
(failover) inside a txn block, which is also consistent to the ALTER
SUBSCRIPTION REFRESH/DROP SUBSCRIPTION command. Attach a small
patch to address this.

Best Regards,
Hou Zhijie


Attachment

pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Typo about the SetDatatabaseHasLoginEventTriggers?
Next
From: Bertrand Drouvot
Date:
Subject: Re: promotion related handling in pg_sync_replication_slots()