bogofilter/bogoutil concurrency crash?
Jim Correia
jim.correia at pobox.com
Mon Apr 7 04:10:02 CEST 2003
On Sunday, April 6, 2003, at 10:21 PM, David Relson wrote:
> Nope. It doesn't help. The proper behavior is for the second
> bogofilter to wait for the first bogofilter to release the file lock.
> If the lock isn't released in a while (see the code for the
> randomizing of wait times), the second bogofilter should give an error
> exit (which procmail will notice if you have the "errcode 75" check in
> your procmailrc).
>
> The segfault you're getting from the manual run is (probably) the same
> as "make check" generates and is a locking problem on OS-X.
David,
I am slow driving gdb in the terminal, but it looks like there are some
legitimate bugs in db_open (it peeks at disposed memory and it looks
like it does the wrong thing when db_lock returns EAGAIN).
I've fixed them here. My problem is gone, and all tests now pass.
What is the best way to submit a patch? (Can I send you datastore_db.c,
or do you want a patch file, etc?)
Jim
make check-TESTS
PASS: t.env
PASS: t.ignore_spam_header
PASS: t.integrity
PASS: t.integrity2
PASS: t.integrity3
PASS: t.lexer
./t._abort: line 6: 3627 Abort trap ( ./abortme )
PASS: t.abort
PASS: t.lock1
PASS: t.lock2
PASS: t.nullstatsprefix
PASS: t.score1
PASS: t.score2
===================
All 12 tests passed
===================
Making check in bogoutil
make check-TESTS
Running test 1
Running test 2
Running test 3
Found a message count of [4] in db. Throwing away text file count of [1]
Running test 4
This database appears to have been upgraded already.
But there's no harm in doing it again.
PASS: driver.sh
PASS: t.dump.load
PASS: t.nonascii.replace
==================
All 3 tests passed
==================
Making check in bogofilter
make check-TESTS
PASS: t.lexer.mbx
PASS: t.regtest
PASS: t.robx
SKIP: t.valgrind
PASS: t.split
PASS: t.systest
PASS: t.grftest
======================
All 6 tests passed
(1 tests were not run)
======================
Making check in .
make[1]: Nothing to be done for `check-am'.
Making check in doc
make[1]: Nothing to be done for `check'.
Making check in contrib
make[1]: Nothing to be done for `check'.
More information about the bogofilter-dev
mailing list