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

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: harukat(at)sraoss(dot)co(dot)jp
Subject: BUG #18876: HINT messages for mxid wrap-around say "drop stale slots", but that may not be appropriate
Date: 2025-04-04 03:05:12
Message-ID: 18876-0d0b53bad5a1f4c1@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

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.

Thanks,

Browse pgsql-bugs by date

  From Date Subject
Next Message Heikki Linnakangas 2025-04-04 11:04:54 Re: BUG #18396: Assert in gistFindCorrectParent() fails on inserting large tuples into gist index
Previous Message Tom Lane 2025-04-02 19:45:14 Re: BUG #18875: COPY BINARY tsvector FROM file leads to misaligned memory access