Re: 2.4.2 on Solaris - Crashes in mailbox_unlock_index

2010-11-01 Thread Andy Fiddaman

On Mon, 1 Nov 2010, Bron Gondwana wrote:
;
; Here's your patch :)

Works perfectly, thanks :)

Andy

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


Re: 2.4.2 on Solaris - Crashes in mailbox_unlock_index

2010-11-01 Thread Bron Gondwana
On Mon, Nov 01, 2010 at 09:43:46AM +, Andy Fiddaman wrote:
 
 On Mon, 1 Nov 2010, Bron Gondwana wrote:
 ;
 ; Here's your patch :)
 
 Works perfectly, thanks :)

Excellent.  Like I said, it WILL be in the next release.  I just
have to fix some other stuff first!

(and I suspect Max and Greg will have stuff to fix too - we're
all bug fixing or rounding out incomplete stuff which I will call
a bug fix even if it's somewhat new featurish... things like
tidying up the multi-channel replication stuff that nobody better
be using yet because it's only half done!)

Bron.

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


Re: 2.4.2 on Solaris - Crashes in mailbox_unlock_index

2010-10-31 Thread Andy Fiddaman

On Sun, 31 Oct 2010, Bron Gondwana wrote:

; On Sat, Oct 30, 2010 at 11:19:14PM +, 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.

Andy

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


Re: 2.4.2 on Solaris - Crashes in mailbox_unlock_index

2010-10-31 Thread Jeroen van Meeuwen (Kolab Systems)
On Sunday, October 31, 2010 02:02:19 pm Andy Fiddaman wrote:
 On Sun, 31 Oct 2010, Bron Gondwana wrote:
 
 ; On Sat, Oct 30, 2010 at 11:19:14PM +, 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.
 

Can we make sure this ends up in Bugzilla as well? Referring to the mailing 
list thread/post would suffice.

Kind regards,

Jeroen van Meeuwen

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


Re: 2.4.2 on Solaris - Crashes in mailbox_unlock_index

2010-10-31 Thread Bron Gondwana
On Sun, Oct 31, 2010 at 01:02:19PM +, Andy Fiddaman wrote:
 
 On Sun, 31 Oct 2010, Bron Gondwana wrote:
 
 ; On Sat, Oct 30, 2010 at 11:19:14PM +, 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 br...@opera.com
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 cy...@fiddaman.net 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/

2.4.2 on Solaris - Crashes in mailbox_unlock_index

2010-10-30 Thread Andy Fiddaman

Hi,

I've just upgraded to Cyrus 2.4 from 2.3 on Solaris 10 and I'm seeing lots
of crashes with various utilities in mailbox_unlock_index().

(gdb) where
#0  0xfd7ffef41e4a in _lwp_kill () from /lib/64/libc.so.1
#1  0xfd7ffef3a753 in thr_kill () from /lib/64/libc.so.1
#2  0xfd7ffeee6f89 in raise () from /lib/64/libc.so.1
#3  0xfd7ffeec5f00 in abort () from /lib/64/libc.so.1
#4  0x0041a1fb in mailbox_unlock_index (mailbox=0x58cae8,
sdata=0x0)
at mailbox.c:1544
#5  0x00418c04 in mailbox_close (mailboxptr=0xfd7fffdfdd70)
at mailbox.c:1003

Just after the upgrade, I was seeing this during attempted index upgrades
(from lmtpd) and reconstruct was failing with the same problem. I removed
the cyrus.* files and then reconstruct completed correctly, and subsequent
reconstructs were fine too.

Everything now seems to be working correctly from the user's perspective,
but I'm still getting these crashes with ipurge and cyr_expire.

Is anyone else seeing this?

Thanks,

Andy

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


Re: 2.4.2 on Solaris - Crashes in mailbox_unlock_index

2010-10-30 Thread Bron Gondwana
On Sat, Oct 30, 2010 at 10:45:16PM +, Andy Fiddaman wrote:
 
 Hi,
 
 I've just upgraded to Cyrus 2.4 from 2.3 on Solaris 10 and I'm seeing lots
 of crashes with various utilities in mailbox_unlock_index().
 
 (gdb) where
 #0  0xfd7ffef41e4a in _lwp_kill () from /lib/64/libc.so.1
 #1  0xfd7ffef3a753 in thr_kill () from /lib/64/libc.so.1
 #2  0xfd7ffeee6f89 in raise () from /lib/64/libc.so.1
 #3  0xfd7ffeec5f00 in abort () from /lib/64/libc.so.1
 #4  0x0041a1fb in mailbox_unlock_index (mailbox=0x58cae8,
 sdata=0x0)
 at mailbox.c:1544
 #5  0x00418c04 in mailbox_close (mailboxptr=0xfd7fffdfdd70)
 at mailbox.c:1003

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.
 
 Just after the upgrade, I was seeing this during attempted index upgrades
 (from lmtpd) and reconstruct was failing with the same problem. I removed
 the cyrus.* files and then reconstruct completed correctly, and subsequent
 reconstructs were fine too.
 
 Everything now seems to be working correctly from the user's perspective,
 but I'm still getting these crashes with ipurge and cyr_expire.
 
 Is anyone else seeing this?

Almost certainly a failure to commit before closing.  Which 2.4 are you
using?  2.4.2, or 2.4.0?  I'm pretty sure we fixed one of these in 2.4.2.
There's a fix for chk_cyrus that's not released yet, but I don't think
it's that.

Bron.

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


Re: 2.4.2 on Solaris - Crashes in mailbox_unlock_index

2010-10-30 Thread Andy Fiddaman
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:

#0  0xfd7ffef41e4a in _lwp_kill () from /lib/64/libc.so.1
#1  0xfd7ffef3a753 in thr_kill () from /lib/64/libc.so.1
#2  0xfd7ffeee6f89 in raise () from /lib/64/libc.so.1
#3  0xfd7ffeec5f00 in abort () from /lib/64/libc.so.1
#4  0x0041a8d9 in mailbox_unlock_index (mailbox=0x58e3e8,
sdata=0x0)
at mailbox.c:1544
#5  0x004192e2 in mailbox_close (mailboxptr=0xfd7fffdfe7a8)
at mailbox.c:1003
#6  0x00416ca3 in expire (
name=0xfd7fffdfec80 domain.com!user.postmaster,
matchlen=31,
maycreate=1, rock=0xfd7fffdffb20) at cyr_expire.c:244
#7  0x00424490 in find_cb (rockp=0xfd7fffdff9a0,
key=0xfd7ffec501a0 domain.com!user.postmaster, keylen=31,
data=0xfd7ffec501c4 0 default
postmas...@domain.com\tlrswipcda\tda@domain.com\tlrs\...@domain.com\tlrs\tjwho@domain.com\tlrs\t,
datalen=118) at mboxlist.c:1697
#8  0x00458c19 in myforeach (db=0x58d7b0,
prefix=0xfd7fffdff190 *, prefixlen=0, goodp=0x423c31 find_p,
cb=0x424140 find_cb, rock=0xfd7fffdff9a0, tidptr=0x0)
at cyrusdb_skiplist.c:1122
#9  0x00424dc3 in mboxlist_findall (namespace=0x0,
pattern=0x58b190 , isadmin=1, userid=0x0, auth_state=0x0,
proc=0x4167ed expire, rock=0xfd7fffdffb20) at mboxlist.c:1889
#10 0x00417424 in main (argc=4, argv=0xfd7fffdffc58)
at cyr_expire.c:440



#0  0xfd7ffef41e4a in _lwp_kill () from /lib/64/libc.so.1
#1  0xfd7ffef3a753 in thr_kill () from /lib/64/libc.so.1
#2  0xfd7ffeee6f89 in raise () from /lib/64/libc.so.1
#3  0xfd7ffeec5f00 in abort () from /lib/64/libc.so.1
#4  0x0041a1fb in mailbox_unlock_index (mailbox=0x58cae8,
sdata=0x0)
at mailbox.c:1544
#5  0x00418c04 in mailbox_close (mailboxptr=0xfd7fffdfdd80)
at mailbox.c:1003
#6  0x00416c1f in purge_me (
name=0xfd7fffdfddf0 domain.org!user.reci12,
matchlen=36, maycreate=1) at ipurge.c:265
#7  0x00423db2 in find_cb (rockp=0xfd7fffdfeb10,
key=0xfd7ffed89638 domain.org!user.reci12,
keylen=36,
data=0xfd7ffed89660 0 default
rec...@domain.org\tlrswipcda\t, datalen=52) at
mboxlist.c:1697
#8  0x00457899 in myforeach (db=0x58af40,
prefix=0xfd7fffdfe300 domain.org!user.reci%,
prefixlen=34, goodp=0x423553 find_p, cb=0x423a62 find_cb,
rock=0xfd7fffdfeb10, tidptr=0x0) at cyrusdb_skiplist.c:1122
#9  0x004246e5 in mboxlist_findall (namespace=0x5736e0,
pattern=0x58e190 user.reci, isadmin=1, userid=0x0, auth_state=0x0,
proc=0x416ad1 purge_me, rock=0x0) at mboxlist.c:1889
#10 0x004169e4 in main (argc=5, argv=0xfd7fffdffc38)
at ipurge.c:202


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


Re: 2.4.2 on Solaris - Crashes in mailbox_unlock_index

2010-10-30 Thread Bron Gondwana
On Sat, Oct 30, 2010 at 11:19:14PM +, 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,

Bron.

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