mirror of
https://github.com/postgres/postgres.git
synced 2025-06-27 23:21:58 +03:00
Fix incorrect initialization of ProcGlobal->startupBufferPinWaitBufId.
It was initialized in the wrong place and to the wrong value. With bad luck this could result in incorrect query-cancellation failures in hot standby sessions, should a HS backend be holding pin on buffer number 1 while trying to acquire a lock.
This commit is contained in:
@ -2449,10 +2449,11 @@ LockBufferForCleanup(Buffer buffer)
|
||||
/* Wait to be signaled by UnpinBuffer() */
|
||||
if (InHotStandby)
|
||||
{
|
||||
/* Share the bufid that Startup process waits on */
|
||||
/* Publish the bufid that Startup process waits on */
|
||||
SetStartupBufferPinWaitBufId(buffer - 1);
|
||||
/* Set alarm and then wait to be signaled by UnpinBuffer() */
|
||||
ResolveRecoveryConflictWithBufferPin();
|
||||
/* Reset the published bufid */
|
||||
SetStartupBufferPinWaitBufId(-1);
|
||||
}
|
||||
else
|
||||
|
Reference in New Issue
Block a user