reconstruct crash in cyrus-imapd-2.4.4
Bron Gondwana
brong at fastmail.fm
Thu Nov 25 06:15:03 EST 2010
On Thu, Nov 25, 2010 at 02:12:46AM -0500, Giles Malet wrote:
> We seem to have a bug in mailbox renames in 2.4.4 that is leaving
> mailboxes in funny states. I think the new mailbox is not added to
> the mboxlist yet the old is removed, and the folder is untouched on
> disk.... but I got sidetracked on that trying to do reconstruct -rf
> to get the lost folders back - and that crashes reconstruct! Doing
> -rfx instead avoids the crash, but has the side-effect of course of
> clobbering the mailbox flags.
Now the bug in mailbox renames is "interesting".
I have a suspicion that it's actually this:
http://git.cyrusimap.org/cyrus-imapd/commit/?id=1988d5fa96f2df88150ece97838469faf092cba1
Since you're running murder. Fixed in git, but that's not much
help to you...
We'd better get on to releasing a 2.4.5!
> The problem is in mboxlist_createmailbox_full() in mboxlist.c:
>
> struct mailbox *newmailbox = NULL;
> [...]
>
> if (!dbonly && !isremote) {
> /* Filesystem Operations */
> r = mailbox_create(name, newpartition, acl, uniqueid,
> options, uidvalidity, &newmailbox);
> }
> [...]
>
> /* all is well - activate the mailbox */
> mboxent = mboxlist_makeentry(newmailbox->mbtype, newmailbox->part,
> newmailbox->acl);
Oh - that's bad. It's bogus for "isremote" too. Ouch.
> In our case, that `if' statement is false (dbonly=1), so newmailbox
> is not initialised:
Yeah, of course it isn't, and unsurprisingly it crashes!
Now that's definitely a bug, and a blocker at that. It SHOULD
be calling the mailbox_open_advanced codepath, but without a
mailboxes.db entry. Hmm. Ok.
http://bugzilla.cyrusimap.org/bugzilla3/show_bug.cgi?id=3351
Unfortunately I don't have a one-line fix for you :( I'll have
to think about it, and it's about 10:15pm at night and my birthday
tomorrow, so I don't know that I'll be able to fix it immediately!
But it will definitely get fixed within this week. I do recommend
the patch above to fix the rename issue. I'll talk to Jeroen about
planning a 2.4.5 for next week.
Bron.
More information about the Cyrus-devel
mailing list