Re: buffer assertion tripping under repeat pgbench load
Simon Riggs <simon@2ndquadrant.com>
From: Simon Riggs <simon@2ndQuadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Greg Smith <greg@2ndquadrant.com>, Andres Freund <andres@2ndquadrant.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2012-12-24T16:16:10Z
Lists: pgsql-hackers
On 24 December 2012 16:07, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Huh. Looks a bit like overflow of the refcount, which would explain why > it takes such a long test case to reproduce it. But how could that be > happening without somebody forgetting to decrement the refcount, which > ought to lead to a visible failure in shorter tests? Even more > interesting that the buffer's global refcount is zero. But we test at the end of each transaction whether any pin count is non-zero, so it can't have slowly built up. It would be easier for it to have decremented too many times within just one transaction. Something to do with tail recursion during VACUUM? -- 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