On Fri, 2009-08-28 at 17:55 +0300, Martin Pihlak wrote:

> This is weird, indeed it seems that for some reason the recovery restartpoints
> are not created.
> 
> Looking quickly at RecoveryRestartPoint() in xlog.c, there are two cases when 
> it
> doesn't do a checkpoint. For one thing, it checks if if enough time has 
> elapsed
> since last controlfile modification. If not, the checkpoint is skipped. I'm 
> wondering
> if it does the correct thing if the clocks of two machines are too far apart.

Probably not that.

> Another check is "is it safe to do a checkpoint". This is logged with DEBUG2, 
> so
> it should be visible if you set the logging level accordingly.

This seems like the most likely cause. I would guess that one of your
GiST indexes has a corruption in it and is preventing a restartpoint
from taking place. That has happened previously.

> Alternatively, you could attach a debugger to the recovery process and see if 
> the
> RecoveryRestartPoint() and CheckPointGuts() functions are called at all.

I would say no need for that, but you can check the Gist pending actions
table.

-- 
 Simon Riggs           www.2ndQuadrant.com


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

Reply via email to