Hi, On 2020-12-16 18:12:39 +0900, Fujii Masao wrote: > - /* Wait to be signaled by UnpinBuffer() */ > + /* > + * Wait to be signaled by UnpinBuffer(). > + * > + * We assume that only UnpinBuffer() and the timeout requests > established > + * above can wake us up here. WakeupRecovery() called by walreceiver or > + * SIGHUP signal handler, etc cannot do that because it uses the > different > + * latch from that ProcWaitForSignal() waits on. > + */ > ProcWaitForSignal(PG_WAIT_BUFFER_PIN); > > /*
Isn't this comment bogus? The latch could e.g. be set by procsignal_sigusr1_handler(), which the startup process uses. Or it could already be set, when entering ResolveRecoveryConflictWithBufferPin(). Why is it even relevant that we only get woken up by UnpinBuffer()? Greetings, Andres Freund