Add some temporary instrumentation to pgstat.c.
Log main-loop blocking events and the results of inquiry messages. This is to get some clarity as to what's happening on those Windows buildfarm members that still don't like the latch-ified stats collector. This bulks up the postmaster log a tad, so I won't leave it in place for long.
This commit is contained in:
parent
b8347138e9
commit
7d88bb73f7
@ -3107,7 +3107,12 @@ PgstatCollectorMain(int argc, char *argv[])
|
||||
* satisfied by existing file.
|
||||
*/
|
||||
if (last_statwrite < last_statrequest)
|
||||
{
|
||||
elog(LOG, "pgstat: writing new stats file");
|
||||
pgstat_write_statsfile(false);
|
||||
}
|
||||
|
||||
elog(LOG, "pgstat: attempting recv()");
|
||||
|
||||
/*
|
||||
* Try to receive and process a message. This will not block,
|
||||
@ -3124,6 +3129,9 @@ PgstatCollectorMain(int argc, char *argv[])
|
||||
errmsg("could not read statistics message: %m")));
|
||||
}
|
||||
|
||||
elog(LOG, "pgstat: received msg type %d len %d",
|
||||
msg.msg_hdr.m_type, len);
|
||||
|
||||
/*
|
||||
* We ignore messages that are smaller than our common header
|
||||
*/
|
||||
@ -3218,12 +3226,16 @@ PgstatCollectorMain(int argc, char *argv[])
|
||||
}
|
||||
} /* end of inner message-processing loop */
|
||||
|
||||
elog(LOG, "pgstat: waiting");
|
||||
|
||||
/* Sleep until there's something to do */
|
||||
wr = WaitLatchOrSocket(&pgStatLatch,
|
||||
WL_LATCH_SET | WL_POSTMASTER_DEATH | WL_SOCKET_READABLE,
|
||||
pgStatSock,
|
||||
-1L);
|
||||
|
||||
elog(LOG, "pgstat: wait result 0x%x", wr);
|
||||
|
||||
/*
|
||||
* Emergency bailout if postmaster has died. This is to avoid the
|
||||
* necessity for manual cleanup of all postmaster children.
|
||||
@ -4006,7 +4018,15 @@ static void
|
||||
pgstat_recv_inquiry(PgStat_MsgInquiry *msg, int len)
|
||||
{
|
||||
if (msg->inquiry_time > last_statrequest)
|
||||
{
|
||||
last_statrequest = msg->inquiry_time;
|
||||
if (last_statwrite < last_statrequest)
|
||||
elog(LOG, "pgstat: received new inquiry message");
|
||||
else
|
||||
elog(LOG, "pgstat: received stale inquiry message");
|
||||
}
|
||||
else
|
||||
elog(LOG, "pgstat: received out-of-order inquiry message");
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user