On Sat, Mar 20, 2021 at 7:07 AM Ajin Cherian <itsa...@gmail.com> wrote: > > On Sat, Mar 20, 2021 at 1:35 AM Amit Kapila <amit.kapil...@gmail.com> wrote: >> >> On Fri, Mar 19, 2021 at 5:03 AM Ajin Cherian <itsa...@gmail.com> wrote: >> > >> > Missed the patch - 0001, resending. >> > >> >> >> @@ -538,10 +550,21 @@ CreateDecodingContext(XLogRecPtr start_lsn, >> .. >> + /* Set two_phase_at LSN only if it hasn't already been set. */ >> + if (ctx->twophase && !MyReplicationSlot->data.two_phase_at) >> + { >> + MyReplicationSlot->data.two_phase_at = start_lsn; >> + slot->data.two_phase = true; >> + ReplicationSlotMarkDirty(); >> + ReplicationSlotSave(); >> + SnapBuildSetTwoPhaseAt(ctx->snapshot_builder, start_lsn); >> + } >> >> What if the walsender or apply worker restarts after setting >> two_phase_at/two_phase here and updating the two_phase state in >> pg_subscription? Won't we need to set SnapBuildSetTwoPhaseAt after >> restart as well? > > > After a restart, two_phase_at will be set by calling > AllocateSnapshotBuilder with two_phase_at >
Okay, that makes sense. -- With Regards, Amit Kapila.