diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index c809798504..3234bc4723 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.44 2007/05/02 18:27:57 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.45 2007/05/04 02:06:13 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1288,7 +1288,7 @@ NON_EXEC_STATIC void AutoVacWorkerMain(int argc, char *argv[]) { sigjmp_buf local_sigjmp_buf; - Oid dbid = InvalidOid; + Oid dbid; /* we are a postmaster subprocess now */ IsUnderPostmaster = true; @@ -1410,8 +1410,8 @@ AutoVacWorkerMain(int argc, char *argv[]) SHMQueueInsertBefore(&AutoVacuumShmem->av_runningWorkers, &MyWorkerInfo->wi_links); /* - * remove from the "starting" pointer, so that the launcher can start a new - * worker if required + * remove from the "starting" pointer, so that the launcher can start + * a new worker if required */ AutoVacuumShmem->av_startingWorker = INVALID_OFFSET; LWLockRelease(AutovacuumLock); @@ -1423,8 +1423,11 @@ AutoVacWorkerMain(int argc, char *argv[]) kill(AutoVacuumShmem->av_launcherpid, SIGUSR1); } else + { /* no worker entry for me, go away */ + dbid = InvalidOid; LWLockRelease(AutovacuumLock); + } if (OidIsValid(dbid)) { @@ -1474,7 +1477,8 @@ AutoVacWorkerMain(int argc, char *argv[]) } /* - * Return a WorkerInfo to the free list */ + * Return a WorkerInfo to the free list + */ static void FreeWorkerInfo(int code, Datum arg) {