Re: 048_vacuum_horizon_floor.pl hangs due to wakeup lost inside LockBufferForCleanup

Xuneng Zhou <xunengzhou@gmail.com>

From: Xuneng Zhou <xunengzhou@gmail.com>
To: Melanie Plageman <melanieplageman@gmail.com>
Cc: Alexander Lakhin <exclusion@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, Andres Freund <andres@anarazel.de>
Date: 2026-06-23T16:20:48Z
Lists: pgsql-hackers

Attachments

Hi Melanie,

> Does the reproducer pass prior to 5310fac6e0f?

I've verified that the reproducer did pass prior to the commit. For a
20-times run of this test, every wait entered ProcWaitForSignal() and
returned, and the "refcount already 1 after waiter publication" line
never appeared.

-- 
Regards,
Xuneng Zhou
HighGo Software Co., Ltd.

Commits

  1. bufmgr: Fix race in LockBufferForCleanup()

  2. bufmgr: Use atomic sub for unpinning buffers

  3. bufmgr: Allow some buffer state modifications while holding header lock