On Thu, Jul 29, 2021 at 4:47 PM Dilip Kumar <dilipbal...@gmail.com> wrote: > > On Wed, Jul 28, 2021 at 5:03 PM Amul Sul <sula...@gmail.com> wrote: > > > > I was too worried about how I could miss that & after thinking more > > about that, I realized that the operation for ArchiveRecoveryRequested > > is never going to be skipped in the startup process and that never > > left for the checkpoint process to do that later. That is the reason > > that assert was added there. > > > > When ArchiveRecoveryRequested, the server will no longer be in > > the wal prohibited mode, we implicitly change the state to > > wal-permitted. Here is the snip from the 0003 patch: > > > > @@ -6614,13 +6629,30 @@ StartupXLOG(void) > > (errmsg("starting archive recovery"))); > > } > > > > - /* > > - * Take ownership of the wakeup latch if we're going to sleep during > > - * recovery. > > - */ > > if (ArchiveRecoveryRequested) > > + { > > + /* > > + * Take ownership of the wakeup latch if we're going to sleep during > > + * recovery. > > + */ > > OwnLatch(&XLogCtl->recoveryWakeupLatch); > > > > + /* > > + * Since archive recovery is requested, we cannot be in a wal prohibited > > + * state. > > + */ > > + if (ControlFile->wal_prohibited) > > + { > > + /* No need to hold ControlFileLock yet, we aren't up far enough */ > > + ControlFile->wal_prohibited = false; > > + ControlFile->time = (pg_time_t) time(NULL); > > + UpdateControlFile(); > > + > > Is there some reason why we are forcing 'wal_prohibited' to off if we > are doing archive recovery? It might have already been discussed, but > I could not find it on a quick look into the thread. >
Here is: https://postgr.es/m/CA+TgmoZ=cctbaxxmtyzogxegqzoz9smkbwrdpsacpjvfcgc...@mail.gmail.com Regards, Amul