This behaviour is by design. future versions are likely to offer other storage options which do not have this problem (possibly based on zodb).
Short-term solutions include:
a. Configure procmail to use a lock file, and use a wrapper script around sb_filter.py for training which also uses the 'lockfile' utility to serialise access to your database.
b. Replace all uses of sb_filter.py with sb_bnfilter.py. This behaves (almost) identically, but all operations are automatically dispatched through a shared, automatically managed daemon process. The primary purpose of this is to reduce startup overhead, but it will also eliminate the concurrency which causes this corruption.
(I am an occasional spambayes developer)
This behaviour is by design. future versions are likely to offer other storage options which do not have this problem (possibly based on zodb).
Short-term solutions include:
a. Configure procmail to use a lock file, and use a wrapper script around sb_filter.py for training which also uses the 'lockfile' utility to serialise access to your database.
b. Replace all uses of sb_filter.py with sb_bnfilter.py. This behaves (almost) identically, but all operations are automatically dispatched through a shared, automatically managed daemon process. The primary purpose of this is to reduce startup overhead, but it will also eliminate the concurrency which causes this corruption.
I hope this helps,