On Tue, Mar 26, 2024 at 7:57 PM Bharath Rupireddy < bharath.rupireddyforpostg...@gmail.com> wrote:
> Please see the attached v23 patches. I've addressed all the review > comments received so far from Amit and Shveta. > > In patch 0003: + SpinLockAcquire(&slot->mutex); + } + + Assert(LWLockHeldByMeInMode(ReplicationSlotControlLock, LW_SHARED)); + + if (slot->inactive_since > 0 && + slot->data.inactive_timeout > 0) + { + TimestampTz now; + + /* inactive_since is only tracked for inactive slots */ + Assert(slot->active_pid == 0); + + now = GetCurrentTimestamp(); + if (TimestampDifferenceExceeds(slot->inactive_since, now, + slot->data.inactive_timeout * 1000)) + inavidation_cause = RS_INVAL_INACTIVE_TIMEOUT; + } + + if (need_locks) + { + SpinLockRelease(&slot->mutex); Here, GetCurrentTimestamp() is still called with SpinLock held. Maybe do this prior to acquiring the spinlock. regards, Ajin Cherian Fujitsu Australia