"Tom Lane" <tgl(at)postgresql(dot)org> wrote
> Rather than try to prevent the race condition directly, it seems best
> to make the lock manager robust against leftover wakeups, by having it
> repeat waiting on the semaphore if the lock has not actually been granted
> or denied yet.
>
IMHO the lmgr will not be the murdered by the leftover wakeup, but what
about the next LockBufferForCleanUp()? It is possible that the the leftover
wakeup is still there (e.g. get the lock without any waiting) and it will
wake up prematurely?
Regards,
Qingqing