Ilya wrote:
>
> I am seeing a lot of core dumps of imapd. I am not sure about exact moment,
> but I think it happens during switching between folders (useng outlook). I
> compiled debug version of cyrus, and here is a backtrace, core is usally
> found in spool/user/folder directory
>
> Program terminated with signal 11, Segmentation fault.
> #0 0x807dc71 in mydelete (db=0x811e600, key=0x0, keylen=675089508, tid=0x0,
> force=0)
> at cyrusdb_skiplist.c:1159
> 1159 newoffset = htonl(FORWARD(ptr, i));
> (gdb) bt
> #0 0x807dc71 in mydelete (db=0x811e600, key=0x0, keylen=675089508, tid=0x0,
> force=0)
> at cyrusdb_skiplist.c:1159
> #1 0x805fbae in remove_session (
> id=0x811e648
> "v*4\003\207\236æ*ÛX\217B·\036W\031¤\022CNJ\fº\023\217péèñå\017\004",
> idlen=32) at tls.c:455
> #2 0x805fbf7 in remove_session_cb (ctx=0x811e600, sess=0x811e600) at
> tls.c:479
First off, AFAIK there was never any testing done with skiplist for
deliver.db or tls_sessions.db. I'm not even sure that's its recommended
for these db (I seem to recall that Larry gave a reason and I know CMU
only uses skiplist for mailboxes.db and seen state).
There's obviously some sort of heap corruption since a NULL pointer is
being passed to the skiplist delete function as the key, and a
SSL_SESSION pointer and cyrusdb pointer both point to the same memory
address, but this backtrace doesn't tell us where it happened. I
haven't seen this behavior with the db3 backend. You could try
switching to db3-nosync and see if the problem persists.
> #3 0x281bd595 in ?? ()
> #4 0x281bd482 in ?? ()
> #5 0x281bfcf4 in ?? ()
> #6 0x281b943c in ?? ()
> #7 0x281beb0d in ?? ()
> #8 0x281b6037 in ?? ()
> #9 0x281b583f in ?? ()
> #10 0x281beb0d in ?? ()
> #11 0x8060240 in tls_start_servertls (readfd=135390720, writefd=0,
> layerbits=0x0, authid=0x0, ret=0x0)
> at tls.c:809
> #12 0x8054e1f in cmd_starttls (tag=0x0, imaps=1) at imapd.c:4323
> #13 0x804d151 in service_main (argc=135390720, argv=0x0, envp=0x0) at
> imapd.c:575
> #14 0x804bdd6 in main (argc=135390720, argv=0x0, envp=0x0) at service.c:414
>
> name : Cyrus IMAPD
> version : v2.1.3 2002/03/07 20:00:42
> vendor : Project Cyrus
> support-url: http://asg.web.cmu.edu/cyrus
> os : FreeBSD
> os-version : 4.5-STABLE
> environment: Cyrus SASL 2.1.2
> Sleepycat Software: Berkeley DB 3.2.9: (January 24, 2001)
> OpenSSL 0.9.6a 5 Apr 2001
> CMU Sieve 2.1
> TCP Wrappers
> lock = fcntl
> auth = unix
> idle = poll
> mboxlist.db = skiplist
> subs.db = skiplist
> seen.db = skiplist
> duplicate.db = skiplist
> tls.db = skiplist
--
Kenneth Murchison Oceana Matrix Ltd.
Software Engineer 21 Princeton Place
716-662-8973 x26 Orchard Park, NY 14127
--PGP Public Key-- http://www.oceana.com/~ken/ksm.pgp