Re: recovering from "found xmin ... from before relfrozenxid ..."
Jochem van Dieten <jochemd@gmail.com>
From: Jochem van Dieten <jochemd@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Andres Freund <andres@anarazel.de>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2020-07-14T10:54:28Z
Lists: pgsql-hackers
On Tue, Jul 14, 2020 at 3:26 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > I think you're attacking a straw man. I'm well aware of how open source > works, thanks. What I'm saying is that contrib is mostly seen to be > reasonably harmless stuff. Sure, you can overwrite data you didn't want > to with adminpack's pg_file_write. But that's the price of having such a > capability at all, and in general it's not hard for users to understand > both the uses and risks of that function. That statement does not apply > to the functions being proposed here. It doesn't seem like they could > possibly be safe to use without very specific expert advice --- and even > then, we're talking rather small values of "safe". Would it be possible to make them safe(r)? For instance, truncate only, don't freeze; only tuples whose visibility information is corrupted; and only in non-catalog tables. What exactly is the risk in that case? Foreign keys might not be satisfied, which might make it impossible to restore a dump, but is that worse than what a DBA can do anyway? I would think that it is not and would leave the database in a state DBAs are much better equipped to deal with. Or would it be possible to create a table like the original table (minus any constraints) and copy all tuples with corrupted visibility there before truncating to a dead line pointer? Jochem
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