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