]> granicus.if.org Git - postgresql/commitdiff
Adjust "pgstat wait timeout" message to be a translatable LOG message.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 20 Jan 2015 04:01:41 +0000 (23:01 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 20 Jan 2015 04:01:41 +0000 (23:01 -0500)
Per discussion, change the log level of this message to be LOG not WARNING.
The main point of this change is to avoid causing buildfarm run failures
when the stats collector is exceptionally slow to respond, which it not
infrequently is on some of the smaller/slower buildfarm members.

This change does lose notice to an interactive user when his stats query
is looking at out-of-date stats, but the majority opinion (not necessarily
that of yours truly) is that WARNING messages would probably not get
noticed anyway on heavily loaded production systems.  A LOG message at
least ensures that the problem is recorded somewhere where bulk auditing
for the issue is possible.

Also, instead of an untranslated "pgstat wait timeout" message, provide
a translatable and hopefully more understandable message "using stale
statistics instead of current ones because stats collector is not
responding".  The original text was written hastily under the assumption
that it would never really happen in practice, which we now know to be
unduly optimistic.

Back-patch to all active branches, since we've seen the buildfarm issue
in all branches.

src/backend/postmaster/pgstat.c

index cd3f4f17737534ad4f3262d50eec0c4858caca7f..6725a0e043104fc9576d6e92fbabab68ad2ef8ec 100644 (file)
@@ -3253,7 +3253,7 @@ PgstatCollectorMain(int argc, char *argv[])
                 * first water, but until somebody wants to debug exactly what's
                 * happening there, this is the best we can do.  The two-second
                 * timeout matches our pre-9.2 behavior, and needs to be short enough
-                * to not provoke "pgstat wait timeout" complaints from
+                * to not provoke "using stale statistics" complaints from
                 * backend_read_statsfile.
                 */
                wr = WaitLatchOrSocket(&pgStatLatch,
@@ -3981,7 +3981,9 @@ backend_read_statsfile(void)
        }
 
        if (count >= PGSTAT_POLL_LOOP_COUNT)
-               elog(WARNING, "pgstat wait timeout");
+               ereport(LOG,
+                               (errmsg("using stale statistics instead of current ones "
+                                               "because stats collector is not responding")));
 
        /* Autovacuum launcher wants stats about all databases */
        if (IsAutoVacuumLauncherProcess())