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: Fujii Masao <masao.fujii@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, Alexander Lakhin <exclusion@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-06-27T01:56:16Z
Lists: pgsql-hackers
On Fri, Jun 26, 2026 at 9:41 PM Fujii Masao <masao.fujii@gmail.com> wrote:
>
> On Wed, Jun 24, 2026 at 1:12 AM Xuneng Zhou <xunengzhou@gmail.com> wrote:
> > Here is the updated patch. Please take a look.
>
> While working on the deadlock detection issue on standby discussed in [1],
> you pointed out that both the proposed patch there and this patch modify
> LockBufferForCleanup(), and suggested applying this fix first.
> So I took a look at it.
>
> As far as I read the patch, it looks good to me, so I'm inclined to
> commit it unless another committer on this thread would like to do so.
> But any objections?
>
> BTW, since the issue was introduced by commits 5310fac6e0f and
> c75ebc657ffc, this fix only needs to be applied to master.
> Is that correct?

I think this is true.

-- 
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