Re: BUG: Postgres 14 + vacuum_defer_cleanup_age + FOR UPDATE + UPDATE
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Cc: Mark Dilger <mark.dilger@enterprisedb.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2023-05-10T18:04:08Z
Lists: pgsql-hackers
Hi, On 2023-05-10 17:44:07 +0200, Peter Eisentraut wrote: > On 12.03.23 00:41, Andres Freund wrote: > > Hi, > > > > On 2023-03-11 15:34:55 -0800, Mark Dilger wrote: > > > > On Mar 11, 2023, at 3:22 PM, Andres Freund <andres@anarazel.de> wrote: > > > > > > > > Something like the attached. > > > > > > I like that your patch doesn't make the test longer. I assume you've already run the tests and that it works. > > > > I did check that, yes :). My process of writing perl is certainly, uh, > > iterative. No way I would get anything close to working without testing it. > > > > CI now finished the tests as well: > > https://cirrus-ci.com/build/6675457702100992 > > > > So I'll go ahead and push that. > > There is a small issue with this commit (a4f23f9b3c). > > In src/bin/pg_amcheck/t/004_verify_heapam.pl, there is code to detect > whether the page layout matches expectations and if not it calls plan > skip_all. Some of these skip_all's don't seem like a good idea. Why is a broken relfrozenxid a cause for skipping a test? But anyway, that's really unrelated to the topic at hand. > This commit adds a test > > is(scalar @lp_off, $ROWCOUNT, "acquired row offsets"); > > *before* that skip_all call. This appears to be invalid. If the skip_all > happens, you get a complaint like > > t/004_verify_heapam.pl (Wstat: 0 Tests: 1 Failed: 0) > Parse errors: Bad plan. You planned 0 tests but ran 1. > > We could move the is() test after all the skip_all's. Any thoughts? I think the easiest fix is to just die if we can't get the offsets - it's not like we can really continue afterwards... Greetings, Andres Freund
Commits
-
Fix incorrect TAP test ordering
- 92155e15d3cf 16.0 landed
-
pg_amcheck: Minor test speedups
- a4f23f9b3cdd 16.0 landed
-
amcheck: Fix FullTransactionIdFromXidAndCtx() for xids before epoch 0
- b3a83055c235 14.8 landed
- e8a9750d03d7 15.3 landed
- 4f5d461e048b 16.0 landed
-
amcheck: Fix ordering bug in update_cached_xid_range()
- a42f515d6b45 14.8 landed
- 6d9588108a56 15.3 landed
- 16327240da29 16.0 landed
-
Fix corruption due to vacuum_defer_cleanup_age underflowing 64bit xids
- be504a3e974d 16.0 landed
- 3c92f7e9d851 12.15 landed
- e6d77f22c7a8 13.11 landed
- 324281fd5b1b 14.8 landed
- 391f08fd6804 15.3 landed
-
Add hardening to catch invalid TIDs in indexes.
- e7428a99a13f 15.0 cited
-
Use full 64-bit XID for checking if a deleted GiST page is old enough.
- 6655a7299d83 13.0 cited
-
Avoid early reuse of btree pages, causing incorrect query results.
- d3abbbebe52e 9.2.0 cited