Re: Synchronizing slots from primary to standby
От | shveta malik |
---|---|
Тема | Re: Synchronizing slots from primary to standby |
Дата | |
Msg-id | CAJpy0uAr2jKLPzDK8GoYSNupeY3ztFKt+r-cg4p+RqMNEy45kA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Synchronizing slots from primary to standby (Ajin Cherian <itsajin@gmail.com>) |
Ответы |
Re: Synchronizing slots from primary to standby
|
Список | pgsql-hackers |
On Mon, Nov 13, 2023 at 11:02 AM Ajin Cherian <itsajin@gmail.com> wrote: > > On Thu, Nov 9, 2023 at 9:54 PM shveta malik <shveta.malik@gmail.com> wrote: > > > > PFA v32 patches which has below changes: > Testing with this patch, I see that if the failover enabled slot is > invalidated on the primary, then the corresponding synced slot is not > invalidated on the standby. Instead, I see that it continuously gets > the below error: > " WARNING: not synchronizing slot sub; synchronization would move it backwards" > > In the code, I see that: > if (remote_slot->restart_lsn < MyReplicationSlot->data.restart_lsn) > { > ereport(WARNING, > errmsg("not synchronizing slot %s; synchronization > would move" > " it backwards", remote_slot->name)); > > ReplicationSlotRelease(); > CommitTransactionCommand(); > return; > } > > If the restart_lsn of the remote slot is behind, then the > local_slot_update() function is never called to set the invalidation > status on the local slot. And for invalidated slots, restart_lsn is > always NULL. > Okay. Thanks for testing Ajin. I think it needs a fix wherein we set the local-slot's invalidation status (provided it is not invalidated already) from the remote slot before this check itself. And if the slot is invalidated locally (either by itself) or by primary_slot being invalidated, then we should skip the sync. I will fix this in the next version. thanks Shveta
В списке pgsql-hackers по дате отправления: