pgsql: Fix race condition in invalidating obsolete replication slots - Mailing list pgsql-committers

From Alvaro Herrera
Subject pgsql: Fix race condition in invalidating obsolete replication slots
Date
Msg-id E1lrjuF-00065G-DM@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix race condition in invalidating obsolete replication slots

The code added to mark replication slots invalid in commit c6550776394e
had the race condition that a slot can be dropped or advanced
concurrently with checkpointer trying to invalidate it.  Rewrite the
code to close those races.

The changes to ReplicationSlotAcquire's API added with c6550776394e are
not necessary anymore.  To avoid an ABI break in released branches, this
commit leaves that unchanged; it'll be changed in a master-only commit
separately.

Backpatch to 13, where this code first appeared.

Reported-by: Andres Freund <andres@anarazel.de>
Author: Andres Freund <andres@anarazel.de>
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/20210408001037.wfmk6jud36auhfqm@alap3.anarazel.de

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/218b101008b533156d7e5832fe143d1e04a01301

Modified Files
--------------
src/backend/replication/slot.c | 223 +++++++++++++++++++++++++++--------------
1 file changed, 145 insertions(+), 78 deletions(-)


pgsql-committers by date:

Previous
From: Michael Paquier
Date:
Subject: pgsql: Improve psql tab completion for options of subcriptions and publ
Next
From: Tomas Vondra
Date:
Subject: pgsql: Optimize creation of slots for FDW bulk inserts