On Sat, Aug 10, 2024 at 7:33 PM Alexander Korotkov <aekorot...@gmail.com> wrote: > On Tue, Aug 6, 2024 at 5:17 AM Alexander Korotkov <aekorot...@gmail.com> > wrote: > > On Sat, Aug 3, 2024 at 6:07 AM Alexander Korotkov <aekorot...@gmail.com> > > wrote: > > > On Sat, Aug 3, 2024 at 3:45 AM Kevin Hale Boyes <kcbo...@gmail.com> wrote: > > > > In the for loop in WaitForLSNReplay, shouldn't the check for > > > > in-recovery be moved up above the call to GetXLogReplayRecPtr? > > > > If we get promoted while waiting for the timeout we could call > > > > GetXLogReplayRecPtr while not in recovery. > > > > > > This is intentional. After standby gets promoted, > > > GetXLogReplayRecPtr() returns the last WAL position being replayed > > > while being standby. So, if standby reached target lsn before being > > > promoted, we don't have to throw an error. > > > > > > But this gave me an idea that before the loop we probably need to put > > > RecoveryInProgress() check after GetXLogReplayRecPtr() too. I'll > > > recheck that. > > > > The attached patchset comprises assorted improvements for > > pg_wal_replay_wait(). > > > > The 0001 patch is intended to improve this situation. Actually, it's > > not right to just put RecoveryInProgress() after > > GetXLogReplayRecPtr(), because more wal could be replayed between > > these calls. Instead we need to recheck GetXLogReplayRecPtr() after > > getting negative result of RecoveryInProgress() because WAL replay > > position couldn't get updated after. > > 0002 patch comprises fix for the header comment of WaitLSNSetLatches() > > function > > 0003 patch comprises tests for pg_wal_replay_wait() errors. > > Here is a revised version of the patchset. I've fixed some typos, > identation, etc. I'm going to push this once it passes cfbot.
The next revison of the patchset fixes uninitialized variable usage spotted by cfbot. ------ Regards, Alexander Korotkov Supabase
v3-0002-Improve-header-comment-for-WaitLSNSetLatches.patch
Description: Binary data
v3-0001-Adjust-pg_wal_replay_wait-procedure-behavior-on-p.patch
Description: Binary data
v3-0003-Add-tests-for-pg_wal_replay_wait-errors.patch
Description: Binary data