Re: BUG #18876: HINT messages for mxid wrap-around say "drop stale slots", but that may not be appropriate

From: TAKATSUKA Haruka <harukat(at)sraoss(dot)co(dot)jp>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #18876: HINT messages for mxid wrap-around say "drop stale slots", but that may not be appropriate
Date: 2026-06-11 04:29:10
Message-ID: 20260611132910.50412ffa57bbc8e70bad8fc3@sraoss.co.jp
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Fujii-san

Thank you for incorporating my feedback into the code and documentation.

with best regards,
Haruka Takatsuka / SRA OSS K.K.

On Thu, 11 Jun 2026 12:31:28 +0900
Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:

> On Fri, Apr 4, 2025 at 10:30 PM PG Bug reporting form
> <noreply(at)postgresql(dot)org> wrote:
> >
> > The following bug has been logged on the website:
> >
> > Bug reference: 18876
> > Logged by: TAKATSUKA Haruka
> > Email address: harukat(at)sraoss(dot)co(dot)jp
> > PostgreSQL version: 17.4
> > Operating system: any
> > Description:
> >
> > In src/backend/access/transam/multixact.c, there are the following hint
> > messages:
> >
> > "Execute a database-wide VACUUM in that database.\n"
> > "You might also need to commit or roll back old prepared transactions, or
> > drop stale replication slots."
> >
> > "To avoid MultiXactId assignment failures, execute a database-wide VACUUM
> > in that database.\n"
> > "You might also need to commit or roll back old prepared transactions, or
> > drop stale replication slots."
> >
> > I think that their "drop stale replication slots" is not appropriate.
> >
> > Because NewRelminMxid is determined by GetOldestMultiXactId() and its
> > comment says:
> > * Return the oldest MultiXactId that's still possibly still seen as live
> > by
> > * any running transaction. Older ones might still exist on disk, but
> > they no
> > * longer have any running member transaction.
> >
> > Thus, the presence of an old mxid in a tuple pending removal by a slot is
> > not considered to affect it.
> >
> > In addition, as far as I have tested, leaving the old inactive replication
> > slot does not cause mxid_age(relminmxid) not to decrease after VACUUM.
>
> I think you're right. So I prepared and attached a patch that refines
> the MXID wraparound hint messages. The patch also updates the
> documentation to clarify the relationship between replication slots and
> MXID wraparound.
>
> Thought?
>
> Regards,
>
> --
> Fujii Masao

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Hüseyin Demir 2026-06-11 05:49:05 Re: BUG #19483: pg_upgrade fails with orphan records in pg_init_priv catalog table
Previous Message Fujii Masao 2026-06-11 03:31:28 Re: BUG #18876: HINT messages for mxid wrap-around say "drop stale slots", but that may not be appropriate