On Saturday, February 10, 2024 9:10 PM Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Sat, Feb 10, 2024 at 5:31 PM Masahiko Sawada <sawada.m...@gmail.com> > wrote: > > > > On Fri, Feb 9, 2024 at 4:08 PM Zhijie Hou (Fujitsu) > > <houzj.f...@fujitsu.com> wrote: > > > > > Another alternative is to register the callback when calling > > > slotsync functions and unregister it after the function call. And > > > register the callback in > > > slotsyncworkmain() for the slotsync worker patch, although this may > > > adds a few more codes. > > > > Another idea is that SyncReplicationSlots() calls synchronize_slots() > > in PG_ENSURE_ERROR_CLEANUP() block instead of PG_TRY(), to make sure > > to clear the flag in case of ERROR or FATAL. And the slotsync worker > > uses the before_shmem_callback to clear the flag. > > > > +1. This sounds like a better way to clear the flag.
Agreed. Here is the V84 patch which addressed this. Apart from above, I removed the txn start/end codes from 0001 as they are used in the slotsync worker patch. And I also ran pgindent and pgperltidy for the patch. Best Regards, Hou zj
v84-0001-Add-a-slot-synchronization-function.patch
Description: v84-0001-Add-a-slot-synchronization-function.patch