Re: [exim] Bug in exim-tidydb and split queue directories

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Dean Brooks
CC: exim-users
Subject: Re: [exim] Bug in exim-tidydb and split queue directories
On Tue, 30 Nov 2004, Dean Brooks wrote:

> Is it me or does exim_tidydb (ver4.43) appear to not properly handle
> split input queues when checking for messages ids in retry files?


It is not you, it is me. :-)

> It appears to delete every record in the retry database that has a message
> ID attached to it, if you are using split input queues.


Indeed. Wow. What a huge bug. I obviously forgot about exim_tidydb when
I implemented the split spool.

> The source code in exim_dbutil.c seems to be missing code to handle
> split queues when checking message ids in retry database. I may be
> wrong here, but I checked the output of exim_tidydb and it deleted
> records it appears it shouldn't have.


Absolutely correct. It should be looking for the message in the split
subdirectory as well as in the main directory (to cope with transitions,
just as other code in Exim does). This shouldn't be a huge amount of
extra code; I will make sure there's a fix in the next release.

> If this is really a bug, it may be of concern for anyone using tidydb
> in cron jobs on their retry database.


Absolutely, though the effect will just be to degrade performace a bit
by not sending multiple messages over individual SMTP connections.

This may set a record for a longstanding, serious bug. The split spool
facility appeared in Exim release 1.70 (21-Aug-1997). The bug seems to
be the twin of another bug, reported for 1.929:

  1. Sending waiting messages down the same SMTP connection wasn't working if
  split_spool_directory was set. How embarrassing!                       


I really should have thought about tidydb when I fixed that one (July
1998)....


Thanks for the report.


-- 
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book:    http://www.uit.co.uk/exim-book