Re: pgsql: Fix race condition in snapshot caching when 2PC is used. - Mailing list pgsql-committers

From Tom Lane
Subject Re: pgsql: Fix race condition in snapshot caching when 2PC is used.
Date
Msg-id 1356510.1597794950@sss.pgh.pa.us
Whole thread Raw
In response to Re: pgsql: Fix race condition in snapshot caching when 2PC is used.  (Andres Freund <andres@anarazel.de>)
Responses Re: pgsql: Fix race condition in snapshot caching when 2PC is used.  (Andres Freund <andres@anarazel.de>)
List pgsql-committers
Andres Freund <andres@anarazel.de> writes:
> On 2020-08-18 19:43:24 -0400, Tom Lane wrote:
>> Uh, is it really okay to modify that variable with only shared
>> ProcArrayLock?

> Uh, you're right.  I assume it'll fix the buildfarm visible issue
> regardless, but we surely don't want to rely on that.

Yeah, having a failure show on the buildfarm would take an order of
magnitude (at least) tighter timing than what we're seeing now.
But I think it could possibly be a problem on big production iron.

> I'm inclined to just make ClearTransaction take an exclusive lock - the
> rest of the 2PC operations are so heavyweight that I can't imagine
> making a difference.  When I tested the locking changes in
> ProcArrayAdd()/Remove() the more heavyweight locking wasn't at all
> visible.

I was wondering if it'd be sensible to convert that counter into an
atomic variable.  That's not real clear, but worth thinking about.

            regards, tom lane



pgsql-committers by date:

Previous
From: Andres Freund
Date:
Subject: Re: pgsql: Fix race condition in snapshot caching when 2PC is used.
Next
From: Andres Freund
Date:
Subject: Re: pgsql: Fix race condition in snapshot caching when 2PC is used.