Re: buffer assertion tripping under repeat pgbench load
Simon Riggs <simon@2ndquadrant.com>
From: Simon Riggs <simon@2ndQuadrant.com>
To: Greg Smith <greg@2ndquadrant.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@2ndquadrant.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2012-12-24T16:10:23Z
Lists: pgsql-hackers
On 24 December 2012 15:57, Greg Smith <greg@2ndquadrant.com> wrote: > 2012-12-24 06:08:46 EST [26015]: WARNING: refcount of base/16384/49169 is > 1073741824 should be 0, globally: 0 > > That is pgbench_accounts_pkey. 1073741824 = > 0100 0000 0000 0000 0000 0000 0000 0000 = 2^30 > > Pretty odd value to find in a PrivateRefCount. What makes me nervous about > all of the PrivateRefCount coding is how it switches between references like > PrivateRefCount[(bufnum) - 1] and PrivateRefCount[b]. Might this be an off > by one error in one of those, where the wrong form was used? PrivateRefCount is also one of the only large chunks of memory in a running server where single bit errors aren't tolerated. In shared buffers, most SLRUs or various other places, single bit errors would often go unnoticed. I wonder if you're having a hardware problem?, If not, it might be worth looking to see if that block is the root, maybe there's a problem in fastroot code, or something that only kicks in with larger indexes. -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Commits
-
Follow TLI of last replayed record, not recovery target TLI, in walsenders.
- af275a12dfee 9.3.0 cited
-
Avoid holding vmbuffer pin after VACUUM.
- 62656617dbe4 9.3.0 cited