mirror of
https://github.com/postgres/postgres.git
synced 2025-11-09 06:21:09 +03:00
Add temporary debug info to help debug 019_replslot_limit.pl failures.
I have not been able to reproduce the occasional failures of 019_replslot_limit.pl we are seeing in the buildfarm and not for lack of trying. The additional logging and increased log level will hopefully help. Will be reverted once the cause is identified. Discussion: https://postgr.es/m/20220218231415.c4plkp4i3reqcwip@alap3.anarazel.de
This commit is contained in:
@@ -177,6 +177,10 @@ ReplicationSlotInitialize(void)
|
||||
static void
|
||||
ReplicationSlotShmemExit(int code, Datum arg)
|
||||
{
|
||||
/* temp debugging aid to analyze 019_replslot_limit failures */
|
||||
elog(DEBUG3, "replication slot exit hook, %s active slot",
|
||||
MyReplicationSlot != NULL ? "with" : "without");
|
||||
|
||||
/* Make sure active replication slots are released */
|
||||
if (MyReplicationSlot != NULL)
|
||||
ReplicationSlotRelease();
|
||||
@@ -554,6 +558,9 @@ ReplicationSlotCleanup(void)
|
||||
Assert(MyReplicationSlot == NULL);
|
||||
|
||||
restart:
|
||||
/* temp debugging aid to analyze 019_replslot_limit failures */
|
||||
elog(DEBUG3, "temporary replication slot cleanup: begin");
|
||||
|
||||
LWLockAcquire(ReplicationSlotControlLock, LW_SHARED);
|
||||
for (i = 0; i < max_replication_slots; i++)
|
||||
{
|
||||
@@ -579,6 +586,8 @@ restart:
|
||||
}
|
||||
|
||||
LWLockRelease(ReplicationSlotControlLock);
|
||||
|
||||
elog(DEBUG3, "temporary replication slot cleanup: done");
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1284,6 +1293,12 @@ InvalidatePossiblyObsoleteSlot(ReplicationSlot *s, XLogRecPtr oldestLSN,
|
||||
(void) kill(active_pid, SIGTERM);
|
||||
last_signaled_pid = active_pid;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* temp debugging aid to analyze 019_replslot_limit failures */
|
||||
elog(DEBUG3, "not signalling process %d during invalidation of slot \"%s\"",
|
||||
active_pid, NameStr(slotname));
|
||||
}
|
||||
|
||||
/* Wait until the slot is released. */
|
||||
ConditionVariableSleep(&s->active_cv,
|
||||
@@ -1347,6 +1362,10 @@ InvalidateObsoleteReplicationSlots(XLogSegNo oldestSegno)
|
||||
XLogSegNoOffsetToRecPtr(oldestSegno, 0, wal_segment_size, oldestLSN);
|
||||
|
||||
restart:
|
||||
/* temp debugging aid to analyze 019_replslot_limit failures */
|
||||
elog(DEBUG3, "begin invalidating obsolete replication slots older than %X/%X",
|
||||
LSN_FORMAT_ARGS(oldestLSN));
|
||||
|
||||
LWLockAcquire(ReplicationSlotControlLock, LW_SHARED);
|
||||
for (int i = 0; i < max_replication_slots; i++)
|
||||
{
|
||||
@@ -1372,6 +1391,8 @@ restart:
|
||||
ReplicationSlotsComputeRequiredLSN();
|
||||
}
|
||||
|
||||
elog(DEBUG3, "done invalidating obsolete replication slots");
|
||||
|
||||
return invalidated;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user