Add some asserts based on LWLockHeldByMe() for replication slot statistics
Two assertions checking that ReplicationSlotAllocationLock is acquired are added to pgstat_create_replslot() and pgstat_drop_replslot(), corresponding to the routines in charge of the creation and the drop of replication slot statistics. The code previously relied on this assumption and documented it in comments, but did not enforce this policy at runtime. Reviewed-by: Bertrand Drouvot Discussion: https://postgr.es/m/Ze_p-hmD_yFeVYXg@paquier.xyz
This commit is contained in:
parent
32dd2c1eff
commit
77cf6a78de
@ -113,6 +113,8 @@ pgstat_create_replslot(ReplicationSlot *slot)
|
||||
PgStat_EntryRef *entry_ref;
|
||||
PgStatShared_ReplSlot *shstatent;
|
||||
|
||||
Assert(LWLockHeldByMeInMode(ReplicationSlotAllocationLock, LW_EXCLUSIVE));
|
||||
|
||||
entry_ref = pgstat_get_entry_ref_locked(PGSTAT_KIND_REPLSLOT, InvalidOid,
|
||||
ReplicationSlotIndex(slot), false);
|
||||
shstatent = (PgStatShared_ReplSlot *) entry_ref->shared_stats;
|
||||
@ -153,6 +155,8 @@ pgstat_acquire_replslot(ReplicationSlot *slot)
|
||||
void
|
||||
pgstat_drop_replslot(ReplicationSlot *slot)
|
||||
{
|
||||
Assert(LWLockHeldByMeInMode(ReplicationSlotAllocationLock, LW_EXCLUSIVE));
|
||||
|
||||
pgstat_drop_entry(PGSTAT_KIND_REPLSLOT, InvalidOid,
|
||||
ReplicationSlotIndex(slot));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user