postgres.git / summary / log / commit / refs
commit 7d88bb73f755f7fb5d847ef2319c21076054fb0e
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Mon May 14 01:11:31 2012 +0000
First released in: master (reverted before release)
Reverted by: 5a2bb060121f (in 9.2.0)
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.
src/backend/postmaster/pgstat.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index 01273e19340..cb437770830 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -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");
}
[parent: b8347138e94c]