From: Matheus Alcantara <matheusssilv97@gmail.com>
To: Álvaro Herrera <alvherre@kurilemu.de>
To: Matheus Alcantara <matheusssilv97@gmail.com>
Cc: Joel Jacobson <joel@compiler.org>
Cc: Arseniy Mukhin <arseniy.mukhin.dev@gmail.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>
Cc: Rishu Bagga <rishu.postgres@gmail.com>
Cc: Yura Sokolov <y.sokolov@postgrespro.ru>
Cc: Daniil Davydov <3danissimo@gmail.com>
Cc: Alexandra Wang <alexandra.wang.oss@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Subject: Re: LISTEN/NOTIFY bug: VACUUM sets frozenxid past a xid in async queue
Date: Mon, 20 Oct 2025 15:19:50 -0300
Message-ID: <DDNCV8U74QPS.KBHN82IW5S4X@gmail.com> (raw)
In-Reply-To: <202510201414.56f2msqusjla@alvherre.pgsql>
References: <DDN5OD2RQFF4.CW8X8CMVQAJC@gmail.com>
<202510201414.56f2msqusjla@alvherre.pgsql>
On Mon Oct 20, 2025 at 11:18 AM -03, Álvaro Herrera wrote:
> On 2025-Oct-20, Matheus Alcantara wrote:
>
>> This is similar to what was already proposed at [1]. This approach was
>> abandoned because a notification on the queue may block datfrozenxid
>> advance and clog truncation which can cause other issues for the users [2].
>
> Well, I think that this is the right solution for backpatching, and that
> you were wrong to abandon it. You can continue to design a better
> mechanism for the master branch, but in old branches we cannot really do
> all those things you're proposing to do.
>
I actually would prefer this approach TBH, but since this can cause
other issues like transaction wraparound due to not consumed
notifications we would need other mechanisms to prevent that and I'm not
sure if users should expect this kind of behavior changes on minor
version updates?
I think that to go with this solution we would need some way to drop too
old notifications from the queue to advance the datfrozenxid, so I
imagine that we would need some GUC to make this configurable and we can
configure a default value of course but some use cases may not be the
best configuration, this is something that users should expected to deal
on minor version updates?
Going with the "self contained" idea sound more easier to backpatch
actually, so this is the main reason that I abandoned this other
approach. Could you please point what make the v8 version not visible
for bachpatching?
Thanks for the comments!
--
Matheus Alcantara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: matheusssilv97@gmail.com, alvherre@kurilemu.de, joel@compiler.org, arseniy.mukhin.dev@gmail.com, sawada.mshk@gmail.com, rishu.postgres@gmail.com, y.sokolov@postgrespro.ru, 3danissimo@gmail.com, alexandra.wang.oss@gmail.com, tgl@sss.pgh.pa.us
Subject: Re: LISTEN/NOTIFY bug: VACUUM sets frozenxid past a xid in async queue
In-Reply-To: <DDNCV8U74QPS.KBHN82IW5S4X@gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox