A weird wordlist.db problem

Matthias Andree matthias.andree at gmx.de
Sat Jun 11 14:53:21 CEST 2005


David Relson <relson at osagesoftware.com> writes:

> You've got a classic case of corrupted database, with one of the
> internal links being bad.  Running db_verify will confirm that for
> you.

Recovery procedures for Berkeley DB based databases are COMPLETELY
documented in sections 3.3 (for transactional databases) and 3.4 (for
non-transactional DBs) of the README.db file that comes with bogofilter.

The relevant section appears to be

| 3.4 RECOVERY OF TRADITIONAL (NON-TRANSACTIONAL) DATABASES
| 
| Non-transactional databases do not store data that could help with
| recovering data, so the recovery options are:
| 
| 3.4.1 Salvage raw data
| 
| Note that your database may already have lost data, so this procedure
| may not recover everything that used to be in the database before the
| corruption happened.
| 
| To try this, suspend mail delivery to your directory, run these
| commands:
| 
|   db_dump -r ~/.bogofilter/wordlist.db > ~/.bogofilter/wordlist.saved
|   rm ~/.bogofilter/{__db.*,log.*,wordlist.db}
|   db_load ~/.bogofilter/wordlist.db < ~/.bogofilter/wordlist.saved
| 
| and resume mail delivery.
| 
| ...

bogoutil -d is pointless in such cases as it isn't trying to traverse
the database in spite of b0rked pointers, db_dump -r is the first thing
to try and rather safe, perhaps db_dump -R which is more aggressive and
can return bogus data.

-- 
Matthias Andree



More information about the Bogofilter mailing list