Re: pg15b2: large objects lost on upgrade
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: "Jonathan S. Katz" <jkatz@postgresql.org>, Peter Geoghegan <pg@bowt.ie>,
Andres Freund <andres@anarazel.de>, Noah Misch <noah@leadboat.com>,
Andrew Dunstan <andrew@dunslane.net>,
Bruce Momjian <bruce@momjian.us>,
Michael Paquier <michael@paquier.xyz>,
Justin Pryzby <pryzby@telsasoft.com>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>,
Shruthi Gowda <gowdashru@gmail.com>
Date: 2022-08-04T17:49:06Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Revert recent changes to 002_pg_upgrade.pl.
- 6f7e7d0c482d 15.0 landed
- 87e22f675fd8 16.0 landed
-
Revise test case added in 43746996399541ecb5c7b188725a5f097c15ceae.
- d92f2bc0dae3 15.0 landed
- 212bdc0cbc32 16.0 landed
-
Use TRUNCATE to preserve relfilenode for pg_largeobject + index.
- bbe08b8869bd 16.0 landed
- 4ab5dae9472c 15.0 landed
-
Preserve relfilenode of pg_largeobject and its index across pg_upgrade.
- a2996478c32d 15.0 landed
- d498e052b4b8 16.0 landed
-
Have VACUUM warn on relfrozenxid "in the future".
- e83ebfe6d767 15.0 cited
-
Set relfrozenxid to oldest extant XID seen by VACUUM.
- 0b018fabaaba 15.0 cited
-
pg_upgrade: Preserve relfilenodes and tablespace OIDs.
- 9a974cbcba00 15.0 cited
-
Perform a lot more sanity checks when freezing tuples.
- 699bf7d05c68 11.0 cited
Robert Haas <robertmhaas@gmail.com> writes: > IMHO it's 100% clear how to make it robust. If you want to check that > two values are the same, you can't let one of them be overwritten by > an unrelated event in the middle of the check. There are many specific > things we could do here, a few of which I proposed in my previous > email, but they all boil down to "don't let autovacuum screw up the > results". It doesn't really matter how robust a test case is, if it isn't testing the thing you need to have tested. So I remain unwilling to disable autovac in a way that won't match real-world usage. Note that the patch you proposed at [1] will not fix anything. It turns off autovac in the new node, but the buildfarm failures we've seen appear to be due to autovac running on the old node. (I believe that autovac in the new node is *also* a hazard, but it seems to be a lot less of one, presumably because of timing considerations.) To make it work, we'd have to shut off autovac in the old node before starting pg_upgrade, and that would make it unacceptably (IMHO) different from what real users will do. Conceivably, we could move all of this processing into pg_upgrade itself --- autovac disable/re-enable and capturing of the horizon data --- and that would address my complaint. I don't really want to go there though, especially when in the final analysis IT IS NOT A BUG if a rel's horizons advance a bit during pg_upgrade. It's only a bug if they become inconsistent with the rel's data, which is not what this test is testing for. regards, tom lane [1] https://www.postgresql.org/message-id/CA%2BTgmoZkBcMi%2BNikxfc54dgkWj41Q%3DZ4nuyHpheTcxA-qfS5Qg%40mail.gmail.com