Re: Fix race condition in InvalidatePossiblyObsoleteSlot()

Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

From: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, pgsql-hackers@lists.postgresql.org, exclusion@gmail.com
Date: 2024-02-26T14:01:45Z
Lists: pgsql-hackers

Attachments

Hi,

On Tue, Feb 20, 2024 at 04:03:53PM +0000, Bertrand Drouvot wrote:
> Hi,
> 
> On Tue, Feb 20, 2024 at 02:33:44PM +0900, Michael Paquier wrote:
> > On Tue, Feb 20, 2024 at 08:51:17AM +0900, Michael Paquier wrote:
> > > Prefixing these with "initial_" is fine, IMO.  That shows the
> > > intention that these come from the slot's data before doing the
> > > termination.  So I'm OK with what's been proposed in v3.
> > 
> > I was looking at that a second time, and just concluded that this is
> > OK, so I've applied that down to 16, wordsmithing a bit the comments.
> 
> Thanks!
> FWIW, I've started to write a POC regarding the test we mentioned up-thread.
> 
> The POC test is based on what has been submitted by Michael in [1]. The POC test
> seems to work fine and it seems that nothing more is needed in [1] (at some point
> I thought I would need the ability to wake up multiple "wait" injection points
> in sequence but that was not necessary).
> 
> I'll polish and propose my POC test once [1] is pushed (unless you're curious
> about it before).

Though [1] mentioned up-thread is not pushed yet, I'm Sharing the POC patch now
(see the attached).

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com

Commits

  1. Revert "Add recovery TAP test for race condition with slot invalidations"

  2. Add recovery TAP test for race condition with slot invalidations

  3. Fix race leading to incorrect conflict cause in InvalidatePossiblyObsoleteSlot()