[spambayes-dev] Re: [Spambayes] Error from pop3proxy

Meyer, Tony T.A.Meyer at massey.ac.nz
Mon Oct 6 23:27:11 EDT 2003


[Richie]
> I can't quite remember all the details of this, but doesn't
> running recovery require a full DB environment rather than the
> single-file mode we use?

[Skip]
> I believe so.  To fix some of the problems, Greg Smith 
> checked in a change to Python's bsddb package the other day 
> which creates an in-memory environment.  This should help, 
> but without an environment stored on-disk, I don't think 
> proper recovery will be possible.  If we want to be able to 
> do db recovery in SpamBayes, I think we're going to have to 
> start using the new features of the bsddb package.

This includes the method that Barry outlined (for ZODB), I presume?

It would be really nice if we could somehow determine whether we're
actually doing something wrong that is causing the runrecovery error, or
if it's just an accepted thing.  Is there any other project that uses
bsddb in a similar sort of way that we could look at?

It is only the messageinfo db that's being corrupted, or both that and
the stats/hammie db?  Or do we not know?

Richie - you get the messageinfo one corrupted, right?  If you added:
"""
    def __del__(self):
        # Close our underlying database.  Better not assume all
databases
        # have close functions!
        def noop(): pass
        getattr(self.db, "close", noop)()
        getattr(self.dbm, "close", noop)()
"""
to the MessageInfoDB class in message.py, would that help?  I don't
think that the message info is actually explicitly closed anywhere
(although it should always be in sync), and maybe it should.

=Tony Meyer



More information about the spambayes-dev mailing list