On Thu, Jan 25, 2024 at 10:39 AM Peter Smith <smithpb2...@gmail.com> wrote:
> 2. synchronize_one_slot > > + /* > + * Sanity check: Make sure that concerned WAL is received and flushed > + * before syncing slot to target lsn received from the primary server. > + * > + * This check should never pass as on the primary server, we have waited > + * for the standby's confirmation before updating the logical slot. > + */ > + latestFlushPtr = GetStandbyFlushRecPtr(NULL); > + if (remote_slot->confirmed_lsn > latestFlushPtr) > + { > + ereport(LOG, > + errmsg("skipping slot synchronization as the received slot sync" > + " LSN %X/%X for slot \"%s\" is ahead of the standby position %X/%X", > + LSN_FORMAT_ARGS(remote_slot->confirmed_lsn), > + remote_slot->name, > + LSN_FORMAT_ARGS(latestFlushPtr))); > + > + return false; > + } > > Previously in v65 this was an elog, but now it is an ereport. But > since this is a sanity check condition that "should never pass" wasn't > the elog the more appropriate choice? We realized that this scenario can be frequently hit when the user has not set standby_slot_names on primary. And thus ereport makes more sense. But I agree that this comment is misleading. We will adjust the comment in the next version. thanks Shveta