Commit 4243f238 authored by Tom Lane's avatar Tom Lane

Suppress attempts to report dropped tables to the stats collector from a

startup or recovery process.  Since such a process isn't a real backend,
pgstat.c gets confused.  This accounts for recent reports of strange
"invalid server process ID -1" log messages during crash recovery.
There isn't any point in attempting to make the report, since we'll discard
stats in such scenarios anyhow.
parent bee34e99
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/storage/smgr/smgr.c,v 1.97 2006/03/24 04:32:13 tgl Exp $ * $PostgreSQL: pgsql/src/backend/storage/smgr/smgr.c,v 1.98 2006/03/30 22:11:55 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -470,7 +470,13 @@ smgr_internal_unlink(RelFileNode rnode, int which, bool isTemp, bool isRedo) ...@@ -470,7 +470,13 @@ smgr_internal_unlink(RelFileNode rnode, int which, bool isTemp, bool isRedo)
*/ */
FreeSpaceMapForgetRel(&rnode); FreeSpaceMapForgetRel(&rnode);
/* Tell the stats collector to forget it immediately, too. */ /*
* Tell the stats collector to forget it immediately, too. Skip this
* in recovery mode, since the stats collector likely isn't running
* (and if it is, pgstat.c will get confused because we aren't a real
* backend process).
*/
if (!InRecovery)
pgstat_drop_relation(rnode.relNode); pgstat_drop_relation(rnode.relNode);
/* /*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment