On Sun 11 Mar 2007 at 02:32PM, Dan Price wrote:
On Sun 11 Mar 2007 at 11:04PM, Timo Sirainen wrote:
On Sun, 2007-03-11 at 20:54 +0000, Chris Wakelin wrote:
Timo Sirainen wrote:
On Sun, 2007-03-11 at 17:23 +0000, Chris Wakelin wrote:
It crashes at login (using PAM via pam_ldap to Active Directory). And no, it was the wrong core file <sheepish grin>. Here's the proper backtrace (with "password" instead of what I actually used ;) )
Well, this one is also broken. Some things that point to an invalid backtrace:
OK this one's actually the right core file *and* the right binary (the other was from dovecot-1.0-beta7.) Yes, this one was correct :) This should fix it: http://dovecot.org/list/dovecot-cvs/2007-March/008096.html
I'll build also a new snapshot. I guess I'll delay rc27 until tomorrow anyway.
I've put up the pre-rc27 onto our box and so far things are looking good. However, it's the weekend, and we don't have many users busy, and no new migrations. If you can wait until Tuesday afternoon (Pacific time) I can let you know how it survives Monday's abuse, and the migration of some more users on Monday night (which should hopefully validate the endianness bugfix). I'll go remove the index and cache removal stuff from our migration script.
Timo,
Since deploying pre-rc27 over the weekend we've had one core dump (just one!), this morning. Here is the message and backtrace. Thanks for working so hard on the IMAP stability.
-dp
dovecot: Mar 13 07:14:34 Error: IMAP(foobar): file mail-cache.c: line 411 (mai l_cache_lock): assertion failed: (!cache->locked) dovecot: Mar 13 07:14:34 Error: IMAP(foobar): Raw backtrace: 0x80b9467 -> 0x80 98220 -> 0x809af69 -> 0x809b016 -> 0x80a3982 -> 0x80a4314 -> 0x80a2c31 -> 0x8085 3fd -> 0x807dd19 -> 0x80adc7e -> 0x806cb85 -> 0x8067df4 -> 0x806bb66 -> 0x806baf a -> 0x806bcb4 -> 0x80beb09 -> 0x80be541 -> 0x8072aec -> 0x806710c dovecot: Mar 13 07:14:34 Error: child 440461 (imap) killed with signal 6
(gdb) bt full #0 0xfee505a7 in _lwp_kill () from /lib/libc.so.1 No symbol table info available. #1 0xfee4d71b in thr_kill () from /lib/libc.so.1 No symbol table info available. #2 0xfee06502 in raise () from /lib/libc.so.1 No symbol table info available. #3 0xfede4b8d in abort () from /lib/libc.so.1 No symbol table info available. #4 0x080b9920 in i_internal_panic_handler (fmt=0x0, args=0x8047564 "bÛ\f\b\233\001") at failures.c:403 backtrace = 0x80eabd0 "0x80b9467 -> 0x8098220 -> 0x809af69 -> 0x809b016 -> 0x80a3982 -> 0x80a4314 -> 0x80a2c31 -> 0x80853fd -> 0x807dd19 -> 0x80adc7e -> 0x806cb85 -> 0x8067df4 -> 0x806bb66 -> 0x806bafa -> 0x806bcb4 -> 0x80b"... #5 0x080b9467 in i_panic ( format=0x80d4234 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:183 No locals. #6 0x08098220 in mail_cache_lock (cache=0xfee9b000) at mail-cache.c:469 view = (struct mail_index_view *) 0x0 ext = (const struct mail_index_ext *) 0x4 i = 134510040 ret = 135174244 __PRETTY_FUNCTION__ = "mail_cache_lock" #7 0x0809af69 in mail_cache_handler_init (ctx_r=0x80475d8, cache=0x8101238) at mail-cache-sync-update.c:40 ctx = (struct mail_cache_sync_context *) 0x80fd1f8 ret = 0 #8 0x0809b016 in mail_cache_expunge_handler (sync_ctx=0xfee505a7, seq=413, data=0x8118128, context=0x80f6964) at mail-cache-sync-update.c:85 view = (struct mail_index_view *) 0x810c228 ctx = (struct mail_cache_sync_context *) 0x80fd1f8 cache = (struct mail_cache *) 0x8101238 cache_file_seq = 135318000 ret = 0 #9 0x080a3982 in mail_index_sync_record (ctx=0x8047730, hdr=0x810ee54, data=0xfed36f08) at mail-index-sync-update.c:306 rec = (const struct mail_transaction_expunge *) 0xfed36f08 end = (const struct mail_transaction_expunge *) 0xfed36f10 ret = 135312872 __PRETTY_FUNCTION__ = "mail_index_sync_record" #10 0x080a4314 in mail_index_sync_update_index (sync_ctx=0x810c228, sync_only_external=false) at mail-index-sync-update.c:895 rec = (const struct mail_index_record *) 0x0 index = (struct mail_index *) 0x8107c28 view = (struct mail_index_view *) 0x810c228 map = (struct mail_index_map *) 0x81010e0 sync_map_ctx = {view = 0x810c228, cur_ext_id = 2, ext_intro_seq = 33554433, ext_intro_offset = 24308, ext_intro_size = 40, expunge_handlers = {buffer = 0x811b658, element_size = 12}, extra_contexts = {buffer = 0x81117f0, element_size = 4}, type = MAIL_INDEX_SYNC_HANDLER_FILE, sync_handlers_initialized = 0, expunge_handlers_set = 1, expunge_handlers_used = 1, cur_ext_ignore = 0, unreliable_flags = 0, sync_only_external = 0} thdr = (const struct mail_transaction_header *) 0x810ee54 data = (const void *) 0xfed36f08 old_lock_id = 1 i = 0 first_append_uid = 66571 ret = 1 had_dirty = false skipped = false check_ext_offsets = false __PRETTY_FUNCTION__ = "mail_index_sync_update_index" #11 0x080a2c31 in mail_index_sync_commit (_ctx=0x8047804) at mail-index-sync.c:669 ctx = (struct mail_index_sync_ctx *) 0x80fd068 index = (struct mail_index *) 0x8107c28 hdr = (const struct mail_index_header *) 0x810823c seq = 33554433 offset = 28448 ret = 0 #12 0x080853fd in mbox_sync (mbox=0x8100bf0, flags=25) at mbox-sync.c:1816 expunged = false index_sync_ctx = (struct mail_index_sync_ctx *) 0x80fd068 sync_view = (struct mail_index_view *) 0x810c228 sync_ctx = {mbox = 0x8100bf0, flags = 25, input = 0x8100a44, file_input = 0x810c544, write_fd = 7, orig_mtime = 1173795269, orig_size = 22378926, index_sync_ctx = 0x80fd068, sync_view = 0x810c228, t = 0x0, hdr = 0x810c26c, header = 0x8111f98, from_line = 0x811b680, base_uid_validity = 1173290687, base_uid_last = 66570, base_uid_last_offset = 252, mails = {buffer = 0x8111ac0, element_size = 52}, syncs = {buffer = 0x8111868, element_size = 20}, sync_rec = {uid1 = 0, uid2 = 0, type = 0, add_flags = 0 '\0', remove_flags = 0 '\0', keyword_idx = 0}, mail_keyword_pool = 0x80fcee0, saved_keywords_pool = 0x8101500, prev_msg_uid = 66773, next_uid = 66774, idx_next_uid = 66571, seq = 1458, idx_seq = 1661, need_space_seq = 0, expunged_space = 0, space_diff = 0, dest_first_mail = 0, first_mail_crlf_expunged = 0, delay_writes = 0, renumber_uids = 0, moved_offsets = 0} seq = 33554433 offset = 28448 lock_id = 79 ret = 0 changed = 1 __PRETTY_FUNCTION__ = "mbox_sync" #13 0x0807dd19 in mbox_transaction_commit (_t=0x8103490, flags=3) at mbox-transaction.c:59 mbox_sync_flags = 0 t = (struct mbox_transaction_context *) 0x8103490 mbox = (struct mbox_mailbox *) 0x8100bf0 lock_id = 0 mbox_modified = false ret = 0 #14 0x080adc7e in mailbox_transaction_commit (_t=0x0, flags=3) at mail-storage.c:506 t = (struct mailbox_transaction_context *) 0x0 #15 0x0806cb85 in imap_expunge (box=0x8100bf0, next_search_arg=0x0) at imap-expunge.c:46 ctx = (struct mail_search_context *) 0x0 t = (struct mailbox_transaction_context *) 0x0 mail = (struct mail *) 0x0 search_arg = {next = 0x0, type = SEARCH_DELETED, value = { subargs = 0x0, seqset = 0x0, str = 0x0}, context = 0x0, hdr_field_name = 0x0, not = 0, match_always = 0, result = -1} failed = false #16 0x08067df4 in cmd_close (cmd=0x80f784c) at cmd-close.c:19 client = (struct client *) 0x80f7808 mailbox = (struct mailbox *) 0x8100bf0 storage = (struct mail_storage *) 0x80f7520 #17 0x0806bb66 in client_handle_input (cmd=0x80f784c) at client.c:332 client = (struct client *) 0x80f7808 __PRETTY_FUNCTION__ = "client_handle_input" #18 0x0806bafa in client_handle_input (cmd=0x80f784c) at client.c:389 client = (struct client *) 0x80f7808 __PRETTY_FUNCTION__ = "client_handle_input" #19 0x0806bcb4 in _client_input (context=0x80f7808) at client.c:432 client = (struct client *) 0x80f7808 cmd = (struct client_command_context *) 0x80f784c ret = 2 __PRETTY_FUNCTION__ = "_client_input" #20 0x080beb09 in io_loop_handler_run (ioloop=0x80f5000) at ioloop-poll.c:199 ctx = (struct ioloop_handler_context *) 0x80f5038 pollfd = (struct pollfd *) 0x2 tv = {tv_sec = 0, tv_usec = 999973} io = (struct io *) 0x80f6418 t_id = 2 msecs = 0 ret = 0 call = true #21 0x080be541 in io_loop_run (ioloop=0x80f5000) at ioloop.c:323 No locals. #22 0x08072aec in main (argc=1, argv=0x8047afc, envp=0x8047b04) at main.c:287 No locals.
-- Daniel Price - Solaris Kernel Engineering - dp@eng.sun.com - blogs.sun.com/dp