Re: recovering from "found xmin ... from before relfrozenxid ..."
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Tom Lane <tgl@sss.pgh.pa.us>, Stephen Frost <sfrost@snowman.net>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2020-07-14T19:41:59Z
Lists: pgsql-hackers
Hi, On 2020-07-14 07:51:27 -0400, Robert Haas wrote: > On Tue, Jul 14, 2020 at 3:08 AM Peter Eisentraut > <peter.eisentraut@2ndquadrant.com> wrote: > > In the meantime, if you're wizard enough to deal with this kind of > > thing, you could also clone the module from the PG14 tree and build it > > against older versions manually. > > But what if you are NOT a wizard, and a wizard is giving you > directions? Then having to build from source is a real pain. And > that's normally the situation I'm in when a customer has this issue. The "found xmin ... from before relfrozenxid ..." cases should all be fixable without needing such a function, and without it making fixing them significantly easier, no? As far as I understand your suggested solution, you need the tid(s) of these tuples, right? If you have those, I don't think it's meaningfully harder to INSERT ... DELETE WHERE ctid = .... or something like that. ISTM that the hard part is finding all problematic tuples in an efficient manner (i.e. that doesn't require one manual VACUUM for each individual block + parsing VACUUMs error message), not "fixing" those tuples. Greetings, Andres Freund
Commits
-
Fix wrong data table horizon computation during backend startup.
- 1c7675a7a426 14.0 landed
-
Centralize horizon determination for temp tables, fixing bug due to skew.
- 94bc27b57680 14.0 landed
-
pg_surgery: Try to stabilize regression tests.
- 0811f766fd74 14.0 landed
-
New contrib module, pg_surgery, with heap surgery functions.
- 34a947ca13e5 14.0 landed
-
Set cutoff xmin more aggressively when vacuuming a temporary table.
- a7212be8b9e0 14.0 cited
-
snapshot scalability: Don't compute global horizons while building snapshots.
- dc7420c2c927 14.0 cited
-
Introduce vacuum errcontext to display additional information.
- b61d161c1463 13.0 cited