On Wed, 2009-01-28 at 23:19 +0900, Fujii Masao wrote:

> > @@ -355,6 +359,27 @@ BackgroundWriterMain(void)
> >      */
> >     PG_SETMASK(&UnBlockSig);
> >
> > +   BgWriterRecoveryMode = IsRecoveryProcessingMode();
> > +
> > +   if (BgWriterRecoveryMode)
> > +           elog(DEBUG1, "bgwriter starting during recovery");
> > +   else
> > +           InitXLOGAccess();
> 
> Why is InitXLOGAccess() called also here when bgwriter is started after
> recovery? That is already called by AuxiliaryProcessMain().

InitXLOGAccess() sets the timeline and also gets the latest record
pointer. If the bgwriter is started in recovery these values need to be
reset later. It's easier to call it twice.

> > @@ -1302,7 +1314,7 @@ ServerLoop(void)
> >              * state that prevents it, start one.  It doesn't matter if this
> >              * fails, we'll just try again later.
> >              */
> > -           if (BgWriterPID == 0 && pmState == PM_RUN)
> > +           if (BgWriterPID == 0 && (pmState == PM_RUN || pmState == 
> > PM_RECOVERY))
> >                     BgWriterPID = StartBackgroundWriter();
> 
> Likewise, we should try to start also the stats collector during recovery?

We did in the previous patch...

> > @@ -2103,7 +2148,8 @@ XLogFileInit(uint32 log, uint32 seg,
> >             unlink(tmppath);
> >     }
> >
> > -   elog(DEBUG2, "done creating and filling new WAL file");
> > +   XLogFileName(tmppath, ThisTimeLineID, log, seg);
> > +   elog(DEBUG2, "done creating and filling new WAL file %s", tmppath);
> 
> This debug message is somewhat confusing, because the WAL file
> represented as "tmppath" might have been already created by
> previous XLogFileInit() via InstallXLogFileSegment().

I think those are just for debugging and can be removed.

-- 
 Simon Riggs           www.2ndQuadrant.com
 PostgreSQL Training, Services and Support


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to