On Wed, Nov 19, 2014 at 2:09 PM, Peter Geoghegan <pg@heroku.com> wrote:
> Attached is a revision of what I previously called btreecheck, which
> is now renamed to amcheck.
This never really went anywhere, because as a project I don't think
that it has very crisp goals. My sense is that it could be developed
in a new direction, with the goal of finding bugs in the master
branch. This seems like something that could be possible without a
large additional effort; committing the tool itself can come later.
Right now, the code that is actually tested by the tool isn't
particularly likely to have bugs. I used a slightly revised version to
constantly verify B-Trees as the regression tests are run. That didn't
catch anything, but since the tool doesn't consult the heap at all I'm
not surprised. Also, I didn't incorporate any testing of recovery with
that stress test.
I wrote amcheck with the assumption that it is useful to have a tool
that verifies several nbtree invariants, a couple of which are fairly
elaborate. amcheck *is* probably useful for detecting corruption due
to hardware failure and so on today, but that is another problem
entirely.
--
Peter Geoghegan