diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c index dc7de20..78cd416 100644 *** a/src/backend/replication/slot.c --- b/src/backend/replication/slot.c *************** ReplicationSlotAcquire(const char *name) *** 358,364 **** if (active_pid != MyProcPid) ereport(ERROR, (errcode(ERRCODE_OBJECT_IN_USE), ! errmsg("replication slot \"%s\" is active for PID %d", name, active_pid))); /* We made this slot active, so it's ours now. */ --- 358,364 ---- if (active_pid != MyProcPid) ereport(ERROR, (errcode(ERRCODE_OBJECT_IN_USE), ! errmsg("replication slot \"%s\" is active for PID %d (acq)", name, active_pid))); /* We made this slot active, so it's ours now. */ *************** ReplicationSlotRelease(void) *** 391,396 **** --- 391,398 ---- * Mark persistent slot inactive. We're not freeing it, just * disconnecting. */ + pg_usleep(100000); + elog(LOG, "ReplicationSlotRelease: unmarking persistent slot"); SpinLockAcquire(&slot->mutex); slot->active_pid = 0; SpinLockRelease(&slot->mutex); *************** ReplicationSlotDropPtr(ReplicationSlot * *** 523,528 **** --- 525,532 ---- { bool fail_softly = slot->data.persistency != RS_PERSISTENT; + pg_usleep(100000); + elog(LOG, "ReplicationSlotDropPtr: unmarking slot after rename fail"); SpinLockAcquire(&slot->mutex); slot->active_pid = 0; SpinLockRelease(&slot->mutex); *************** ReplicationSlotDropPtr(ReplicationSlot * *** 540,545 **** --- 544,551 ---- * and nobody can be attached to this slot and thus access it without * scanning the array. */ + pg_usleep(100000); + elog(LOG, "ReplicationSlotDropPtr: unmarking slot"); LWLockAcquire(ReplicationSlotControlLock, LW_EXCLUSIVE); slot->active_pid = 0; slot->in_use = false; *************** restart: *** 876,882 **** if (active_pid) ereport(ERROR, (errcode(ERRCODE_OBJECT_IN_USE), ! errmsg("replication slot \"%s\" is active for PID %d", slotname, active_pid))); /* --- 882,888 ---- if (active_pid) ereport(ERROR, (errcode(ERRCODE_OBJECT_IN_USE), ! errmsg("replication slot \"%s\" is active for PID %d (drop)", slotname, active_pid))); /*