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: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2020-07-13T22:38:22Z
Lists: pgsql-hackers
Hi, On 2020-07-13 17:12:18 -0400, Robert Haas wrote: > 1. There's nothing to identify the tuple that has the problem, and no > way to know how many more of them there might be. Back-patching > b61d161c146328ae6ba9ed937862d66e5c8b035a would help with the first > part of this. Not fully, I'm afraid. Afaict it doesn't currently tell you the item pointer offset, just the block numer, right? We probably should extend it to also include the offset... > 2. In some other, similar situations, e.g. where the tuple data is > garbled, it's often possible to get out from under the problem by > deleting the tuple at issue. But I think that doesn't necessarily fix > anything in this case. Huh, why not? That worked in the cases I saw. > Therefore, one of my colleagues has - at my request - created a couple > of functions called heap_force_kill() and heap_force_freeze() which > take an array of TIDs. The former truncates them all to dead line > pointers. The latter resets the infomask and xmin to make the xmin > frozen. (It should probably handle the xmax too; not sure that the > current version does that, but it's easily fixed if not.) xmax is among the problematic cases IIRC, so yes, it'd be good to fix that. 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