On 03/30/2015 09:01 PM, Jeff Janes wrote:
commit 2c03216d831160bedd72d45f7 has invalidated the part of the docs saying "If no WAL has been written since the previous checkpoint, new checkpoints will be skipped even if checkpoint_timeout has passed", presumably by accident.It seems that this part is no longer true when it should be true: if (curInsert == ControlFile->checkPoint + MAXALIGN(SizeOfXLogRecord + sizeof(CheckPoint)) MAXALIGN(SizeOfXLogRecord + sizeof(CheckPoint) is now 96, but the amount by which curInsert gets advanced is still 104, like it was before the commit.
Hmm. Wasn't this a bit broken before too, when the checkpoint record crosses a page boundary?
Instead of trying to calculate where the checkpoint record ends, I think we could check that the prev-pointer points to the last checkpoint record.
- Heikki -- Sent via pgsql-hackers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
