While nosing around the problem areas, I think I've found yet another
issue here.  The global bool InRecovery is only maintained correctly
in the startup process, which wasn't a problem before 8.4.  However,
if we are making the bgwriter execute the end-of-recovery checkpoint,
there are multiple places where it is tested that are going to be
executed by bgwriter.  I think (but am not 100% sure) that these
are all the at-risk references:
        XLogFlush
        CheckPointMultiXact
        CreateCheckPoint (2 places)
Heikki's latest patch deals with the tests in CreateCheckPoint (rather
klugily IMO) but not the others.  I think it might be better to fix
things so that InRecovery is maintained correctly in the bgwriter too.

                        regards, tom lane

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

Reply via email to