change request

Matthias Andree matthias.andree at gmx.de
Mon Jan 13 20:38:30 CET 2003


On Mon, 13 Jan 2003, Timothy VanFosson wrote:

> Thanks for the heads up.  I was just starting to look into it.
> 
> FWIW, I can get t.lock2 to work if I use
> 
> filelist=`find $srcdir/t.*  \( -type d -prune \) -o \( -type f -print \)`
> 
> but not if I use
> 
> filelist=$srcdir/Makefile
> 
> I can send you the log if you are interested.

The filelist doesn't actually matter, it's just needed to feed
bogofilter some stuff to get it busy for half a second or so. If the
filelist is too short, the test might falsely pass, that's the
difficulty about testing whether locking for proper serialization works.

t.lock2 is supposed to figure if bogofilter's file locking doesn't work,
we do that by trying to cause write collisions of several bogofilter
processes running at the same time. If they do, we assume that one
process goofs up and complains at some time.

The test is not fool-proof and will probably have to be enhanced some
more to make it reliable. Like: feed pseudo-random data, restart
processes as they exit for a while, to make sure we have processes busy
that write new data, to prevent in-situ updating within the DB file
which might NOT turn up the collisions.

Anyways, I have a (uncommitted to CVS) change set here that fixes the
locking issues and make t.lock2 pass with the real big file list.




More information about the Bogofilter mailing list