Bayes rebuild timeout problems

Julian Field MailScanner at
Sat Mar 12 20:22:34 GMT 2005

    [ The following text is in the "ISO-8859-1" character set. ]
    [ Your display is set for the "US-ASCII" character set.  ]
    [ Some characters may be displayed incorrectly. ]

I have found the source, it's an undesirable "feature" of the file
locking semantics.
While someone is waiting for an exclusive lock on a file, shared locks
are still handed out freely if 1 process already has a shared lock. So
while some processes have shared locks, other processes can get shared
locks, despite the fact that someone else is waiting for an exclusive lock.

So it doesn't show up when you have Max Children = 2, but gets more
likely to show up as you increase the number of children beyond 3.

I now have a 2nd lock file, signalling that a process is requesting an
exclusive lock to rebuild the bayes database. If that 2nd lock file
exists, the other processes don't even try to ask for a shared lock,
they sit quietly waiting for it to disappear. That way the number of
shared locks gradually drops to 0, giving the exclusive lock a chance at
success. Once the exclusive lock succeeds, the Bayes rebuild can start.
All the other children are now safely locked out while it rebuilds.

This will have to be in a new beta, as it isn't a simple change and
affects 2 files.

Julian Field
Buy the MailScanner book at
Professional Support Services at
MailScanner thanks transtec Computers for their support

PGP footprint: EE81 D763 3DB0 0BFD E1DC 7222 11F6 5947 1415 B654

------------------------ MailScanner list ------------------------
To unsubscribe, email jiscmail at with the words:
'leave mailscanner' in the body of the email.
Before posting, read the MAQ ( and
the archives (

Support MailScanner development - buy the book off the website!

More information about the MailScanner mailing list