[Spambayes] Shelve database corruption?

Tim Peters tim.one at comcast.net
Wed May 19 13:39:01 EDT 2004

[Lars Marius Garshol]
> ...
> I've got db_recover, and ran it to find out what it does, but it
> doesn't appear to do anything. I found the documentation for it, which
> talks about log files, but I don't appear to have any. Not sure
> whether this means I don't have the right sort of Berkeley DB or
> whether it means that the log files are somewhere else.

Unfortunately, neither.  The spambayes code uses a "simplifying layer" on
top of native Berkeley.  Part of what it "simplifies away" is everything
(like log files!) needed to perform recovery when bsddb manages to get
itself corrupted.  This isn't good:  when a spambayes Berkeley db gets
corrupted, there's no cure.  OTOH, if we rewrote to the native Berkeley API,
that would introduce problems too, like creating the need for new
maintenance procedures to delete old Berkeley log files.  db_recover and
friends don't ship with Python on Windows either.

With the benefit of a year of hindsight, Berkeley DB was a poor choice for
this project.  Partly because it has a few problems, but mostly because
nobody has shown up with both the time and Berkeley Fu needed to repair the
specific problems we see.

More information about the Spambayes mailing list