David Carter wrote:

Take a mailbox with 2 messages.

Expunge the second message and then the first. "reconstruct -k" will generate a mailbox where the second message appears in both cyrus.index and cyrus.expunge. Not good, especially when cyrus_expire -X cuts in.

A trivial fix:

http://www-uxsup.csx.cam.ac.uk/~dpc22/cyrus/patches/2.3cvs/reconstruct.patch

A slightly more ambitious fix, using the fact that both uid[] and expuid[] have been sorted into order of ascending UID:

http://www-uxsup.csx.cam.ac.uk/~dpc22/cyrus/patches/2.3cvs/reconstruct2.patch

I believe that the second patch matches the intent of the original code.

Applied patch 2 to CVS.

--
Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University

Reply via email to