Re: Avoiding "wrong tuple length" errors at the end of VACUUM on pg_database update (Backpatch of 947789f to v12 and v13)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>,
"Imseih (AWS), Sami" <simseih@amazon.com>,
Nathan Bossart <nathandbossart@gmail.com>
Date: 2023-01-10T07:57:43Z
Lists: pgsql-hackers
Michael Paquier <michael@paquier.xyz> writes: > Any objections about getting 947789f applied to REL_13_STABLE and > REL_12_STABLE and see this issue completely gone from all the versions > supported? No objections to back-patching the fix, but I wonder if we can find some mechanical way to prevent this sort of error in future. It's surely far from obvious that we need to apply heap_inplace_update to a raw tuple rather than a syscache entry. A partial fix perhaps could be to verify that the supplied tuple is the same length as what we see on-disk? It's partial because it'd only trigger if there had actually been a toasted-field expansion, so it'd most likely not catch such coding errors during developer testing. regards, tom lane
Commits
-
Avoid using tuple from syscache for update of pg_database.datfrozenxid
- c0ee6943ca1d 12.14 landed
- 72b6098be47e 13.10 landed