Re: Race condition in InvalidateObsoleteReplicationSlots()
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Álvaro Herrera <alvherre@alvh.no-ip.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andres Freund <andres@anarazel.de>, pgsql-hackers@postgresql.org, Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>, Fujii Masao <fujii@postgresql.org>
Date: 2021-06-23T14:02:12Z
Lists: pgsql-hackers
On 2021-Jun-20, Tom Lane wrote:
> Actually ... isn't there a second race, in the opposite direction?
> IIUC, the point of this is that once we force some WAL to be sent
> to the frozen sender/receiver, they'll be killed for failure to
> respond. But the advance_wal call is not the only possible cause
> of that; a background autovacuum for example could emit some WAL.
> So I fear it's possible for the 'to release replication slot'
> message to come out before we capture $logstart. I think you
> need to capture that value before the kill not after.
I accounted for all those things and pushed again.
--
Álvaro Herrera Valdivia, Chile
"I can see support will not be a problem. 10 out of 10." (Simon Wittber)
(http://archives.postgresql.org/pgsql-general/2004-12/msg00159.php)
Commits
-
Add test case for obsoleting slot with active walsender, take 2
- 24043c27b46f 14.0 landed
-
Add test case for obsoleting slot with active walsender
- 09126984a263 14.0 landed
-
Return ReplicationSlotAcquire API to its original form
- 1632ea43682f 14.0 landed
-
Fix race condition in invalidating obsolete replication slots
- 96540f80f833 14.0 landed
- 218b101008b5 13.4 landed
-
Fix issues in invalidation of obsolete replication slots.
- f9e9704f09da 14.0 cited
-
Allow users to limit storage reserved by replication slots
- c6550776394e 13.0 cited