Re: [HACKERS] More race conditions in logical replication - Mailing list pgsql-hackers

From Robert Haas
Subject Re: [HACKERS] More race conditions in logical replication
Date
Msg-id CA+TgmoZneGkWSUyxPxbWkzpYmOHzOGxOJ1g+_PqPR4VDc4fR7A@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] More race conditions in logical replication  (Petr Jelinek <petr.jelinek@2ndquadrant.com>)
List pgsql-hackers
On Tue, Jul 25, 2017 at 5:47 AM, Petr Jelinek
<petr.jelinek@2ndquadrant.com> wrote:
> As a side note, the ConditionVariablePrepareToSleep()'s comment could be
> improved because currently it says the only advantage is that we skip
> double-test in the beginning of ConditionVariableSleep(). But that's not
> true, it's essential for preventing race conditions like the one above
> because it puts the current process into waiting list so we can be sure
> it will be signaled on broadcast once ConditionVariablePrepareToSleep()
> has been called.

But if you don't call ConditionVariablePrepareToSleep() before calling
ConditionVariableSleep(), then the first call to the latter will call
the former and return without doing anything else.  So I don't see how
this can ever go wrong if you're using these primitives as documented.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: [HACKERS] More race conditions in logical replication
Next
From: Robert Haas
Date:
Subject: Re: [HACKERS] Inadequate infrastructure for NextValueExpr