Re: Question about InvalidatePossiblyObsoleteSlot()
Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>, "suyu.cmj" <mengjuan.cmj@alibaba-inc.com>, "bharath.rupireddyforpostgres" <bharath.rupireddyforpostgres@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-10-30T04:18:26Z
Lists: pgsql-hackers
Hi, On Thu, Oct 30, 2025 at 11:25:18AM +0900, Michael Paquier wrote: > On Wed, Oct 29, 2025 at 08:55:56AM +0000, Bertrand Drouvot wrote: > > > That's the test instability that triggered 818fefd8fd4 and not any report > > from the field. I think that pre-818fefd8fd4 behavior has been there for a > > while and that hitting the inconsistency is a pathological case. I'd vote for > > do nothing unless we get complaints from the field. > > I am not sure that there is anything else to be done, but let's just > revert the change in v16~ for now. As far as I can see, the change is > straight-forward in v16, slightly funky in v17 as "invalidation_cause" > is a rename of "conflict", while your patch captures the refactoring > of v18~ under DetermineSlotInvalidationCause(). I have run a few > hundred loops of 035_standby_logical_decoding for v16 and v17, in > case, without seeing problems. Now the original race was also hard to > see. The tests are also stabilized on 17 thanks to 17a165d60f73 and on 16 thanks to 86392e8827d8, so I think that we should be fine on those branches too. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix regression with slot invalidation checks
- e3714dc059db 16.11 landed
- f3fb6bc9feec 17.7 landed
- bf3dba508ee1 18.1 landed
- d43209468906 19 (unreleased) landed
-
Fix race leading to incorrect conflict cause in InvalidatePossiblyObsoleteSlot()
- 818fefd8fd44 17.0 cited