On Fri, Feb 18, 2011 at 2:50 PM, Tom Lane <[email protected]> wrote: > Robert Haas <[email protected]> writes: >> On Fri, Feb 18, 2011 at 2:35 PM, Andrew Dunstan <[email protected]> wrote: >>> It's not running HS, so there's no query to wait on. > >> That seems to imply that recovery has leaked a buffer pin. > > No, because then the sanity check in LockBufferForCleanup would have > fired: > > /* There should be exactly one local pin */ > if (PrivateRefCount[buffer - 1] != 1) > elog(ERROR, "incorrect local pin count: %d", > PrivateRefCount[buffer - 1]);
Hmm, yeah. > Some sort of deadly embrace with the bgwriter, maybe? Maybe. I think it'd be useful to know what the buffer header thinks the refcount on that buffer is, and what the startup process and the bgwriter each have for PrivateRefCount[buffer]. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
