unexpunge segfaults with -l on some mailboxes
brong at fastmail.fm
Thu Mar 12 17:39:33 EDT 2009
On Thu, Mar 12, 2009 at 09:08:47AM -0300, Patrick Boutilier wrote:
> Bron Gondwana wrote:
>> On Wed, Mar 11, 2009 at 12:40:28PM -0300, Patrick Boutilier wrote:
>>> Darn. This is caused by mailbox corruption again. My script to detect
>>> corruption wasn't working properly. Any idea how we can track down
>>> what is causing the corruption?
>> Yeah, I was going to say.
>> It's corrupted cache file offset pointers. Assuming you upgraded
>> this from an earlier version of Cyrus at some point,
> I believe we started at 1.5.19 and then migrated up through the 2.0 ,
> 2.2 series. Our last major update was from 2.2.13 to 2.3.11. Currently
> on 2.3.13
>> and cyrus.index files had issues maintaining cache pointer
>> consistency. You pretty much have to reconstruct all your mailboxes
>> to guarantee consistency I think.
> This latest list of corrupted mailboxes includes many that were
> correupted a couple of weeks ago (including mine) so this is the second
> time they have been reconstructed.
Not so good. Crap. And this is on 2.3.13? I don't see any changes
touching that code in the post 2.3.13 changelogs...
>> I'm tempted to protect the code from crashing though... we don't
>> use unexpunge at FastMail, which is probably why I haven't already
>> done so.
>> Something like the attached should do it. I'll test it more
>> completely and commit it to CVS for 2.3.14 (since Ken hasn't
>> cut a release candidate yet!)
> Thanks for the patch.
Hey, don't use it though - it doesn't even compile! It was a first
draft. I'll give you a real patch soon... been working on doing it
> Would ipurge be causing the corruption? We currently purge e-mails older
> than 31 days on a weekly basis. I will turn that off for a bit (since
> disk space is not as much of an issue as it used to be) and see if the
> corruption returns.
Oooh... maybe. I don't use ipurge. Let me know what you find with
turning it off. I've never even _looked_ at that code.
More information about the Info-cyrus