Re: 2.4.2 on Solaris - Crashes in mailbox_unlock_index

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Oct 31, 2010 at 01:02:19PM +0000, Andy Fiddaman wrote:
> 
> On Sun, 31 Oct 2010, Bron Gondwana wrote:
> 
> ; On Sat, Oct 30, 2010 at 11:19:14PM +0000, Andy Fiddaman wrote:
> ; > On Sun, 31 Oct 2010, Bron Gondwana wrote:
> ; > ;
> ; > ; I don't suppose the stacktrace went any further up than that?  I'm
> ; > ; more interested in the call-site of mailbox_close, because that's
> ; > ; where a dirty mailbox will be being closed.
> ; >
> ; > Here are a couple:
> ;
> ; Ok - that's all I needed.  This is a bug.  I'll push a fix
> ; to master straight away, and it will be in 2.4.3.
> 
> Thanks, superb support as always. I'll apply the patch and look at rolling
> out 2.4.2 to production this week then go to 2.4.3 when it's out.

Sorry - it's stuck in a queue behind some other stuff I don't want to push
just yet.  Here's the patch attached.

The other stuff is pretty shiny - XFER support back to older versions of
Cyrus :)  Unfortunately there's an issue with .seen support in Cyrus 2.2
that's going to screw me up I think - I'm going to have to create a .seen
file as well - with backported entries for each folder!  Don't know how
that's going to all come together... tricky.  Anyway...

Here's your patch :)

Bron.
>From 32a713e74a8547b9023e4df5ba4e00530e506d1a Mon Sep 17 00:00:00 2001
From: Bron Gondwana <brong@xxxxxxxxx>
Date: Sun, 31 Oct 2010 11:22:37 +1100
Subject: [PATCH 1/3] Commit mailbox after annotation based expiry

Fixes a bug reported by Andy Fiddaman <cyrus@xxxxxxxxxxxx> on the
mailing list.
---
 imap/cyr_expire.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/imap/cyr_expire.c b/imap/cyr_expire.c
index a23b1d2..ae9c8a4 100644
--- a/imap/cyr_expire.c
+++ b/imap/cyr_expire.c
@@ -228,6 +228,7 @@ int expire(char *name, int matchlen, int maycreate __attribute__((unused)),
 	}
 
 	r = mailbox_expunge(mailbox, expire_cb, erock, NULL);
+	if (!r) r = mailbox_commit(mailbox);
 	if (r) {
 	    syslog(LOG_ERR, "failed to expire old messages: %s", mailbox->name);
 	    mailbox_close(&mailbox);
-- 
1.7.1

----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux