It looks to me like we are timing out the client while the client is IDLEing, but we get a signal from idled in the middle of shutdown(). Try this patch. --- imapd.c.~1.535.~ 2007-11-14 16:16:21.000000000 -0500 +++ imapd.c 2007-11-14 16:22:59.000000000 -0500 @@ -836,6 +836,8 @@ { int i; + idle_done(imapd_mailbox); + proc_cleanup(); i = 0;
Thanks. I will try this patch as soon as I can, but it's clearly not the only issue, because the same thing happens with POP processes. Here's an example for one:
(gdb) bt #0 0x0096441e in __read_nocancel () from /lib/tls/libc.so.6 #1 0x00ac02f7 in BIO_new_socket () from /lib/libcrypto.so.4 #2 0x00abe2b2 in BIO_read () from /lib/libcrypto.so.4 #3 0x00fcfe13 in ssl23_read_bytes () from /lib/libssl.so.4 #4 0x00fcec51 in ssl23_get_client_hello () from /lib/libssl.so.4 #5 0x00fce712 in ssl23_accept () from /lib/libssl.so.4 #6 0x00fd2c9a in SSL_accept () from /lib/libssl.so.4 #7 0x08052cb3 in shut_down () #8 0x0804e513 in shut_down () #9 0x0804d58c in ?? () #10 0x00000001 in ?? () #11 0x08dd6848 in ?? () #12 0x00000000 in ?? ()As you see it looks very much like the IMAP stack trace, but obviously the IDLE routine is not a factor. OTOH, all the stuck IMAP processes I've looked at so far *did* have those idle_xxx lines in their traces. I am correct in assuming that that would only occur for clients that actually use IDLE, right?
-- .:.Sebastian Hagedorn - RZKR-R1 (Gebäude 52), Zimmer 18.:. Zentrum für angewandte Informatik - Universitätsweiter Service RRZK .:.Universität zu Köln / Cologne University - ✆ +49-221-478-5587.:. .:.:.:.Skype: shagedorn.:.:.:.
Attachment:
pgptFu87rguuY.pgp
Description: PGP signature
---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html