Jeff A. Earickson wrote:
Hi,
My setup: Solaris 9, mbox format, mailboxes NFS mounted from another S9 system, imap. I got the following assert yesterday:
Jan 30 19:57:15 emerald dovecot: [ID 107833 mail.error] imap(user): file index-mail-headers.c: line 258 (index_mail_parse_header): assertion failed: (part != NULL) Jan 30 19:57:16 emerald dovecot: [ID 107833 mail.error] imap(user): file index-mail-headers.c: line 258 (index_mail_parse_header): assertion failed: (part != NULL)
The gdb work on the core file is attached. This is a mystery because part was NULL in the core file. Weird.
Jeff Earickson Colby College
Script started on Tue Jan 31 07:26:12 2006 %gdb imap core GNU gdb 6.3 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "sparc-sun-solaris2.9"... Core was generated by `imap'. Program terminated with signal 6, Aborted. Reading symbols from /usr/lib/libdl.so.1...done. Loaded symbols for /usr/lib/libdl.so.1 Reading symbols from /usr/lib/libsocket.so.1...done. Loaded symbols for /usr/lib/libsocket.so.1 Reading symbols from /usr/lib/libnsl.so.1...done. Loaded symbols for /usr/lib/libnsl.so.1 Reading symbols from /usr/lib/librt.so.1...done. Loaded symbols for /usr/lib/librt.so.1 Reading symbols from /usr/lib/libsendfile.so.1...done. Loaded symbols for /usr/lib/libsendfile.so.1 Reading symbols from /usr/lib/libc.so.1...done. Loaded symbols for /usr/lib/libc.so.1 Reading symbols from /usr/lib/libmp.so.2...done. Loaded symbols for /usr/lib/libmp.so.2 Reading symbols from /usr/lib/libaio.so.1...done. Loaded symbols for /usr/lib/libaio.so.1 Reading symbols from /usr/lib/libmd5.so.1...done. Loaded symbols for /usr/lib/libmd5.so.1 Reading symbols from /usr/platform/SUNW,Ultra-1/lib/libc_psr.so.1...done. Loaded symbols for /usr/platform/SUNW,Ultra-60/lib/libc_psr.so.1 #0 0xff2204f8 in _libc_kill () from /usr/lib/libc.so.1 (gdb) bt #0 0xff2204f8 in _libc_kill () from /usr/lib/libc.so.1 #1 0xff1b6d18 in abort () from /usr/lib/libc.so.1 #2 0x000735d0 in i_internal_panic_handler ( fmt=0x8a1b8 "file %s: line %d (%s): assertion failed: (%s)", args=0xffbff420) at failures.c:375 #3 0x000730a8 in i_panic ( format=0x8a1b8 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:173 #4 0x00049a74 in index_mail_parse_header (part=0x0, hdr=0xbd760, mail=0xbb970) at index-mail-headers.c:259 #5 0x00049d14 in index_mail_parse_header_cb (part=0x0, hdr=0xbd760, context=0xbb970) at index-mail-headers.c:343 #6 0x0006e83c in message_parse_header (part=0x0, input=0xcc210, hdr_size=0xbba48, callback=0x49d00 <index_mail_parse_header_cb>, context=0xbb970) at message-parser.c:661 #7 0x00049db0 in index_mail_parse_headers (mail=0xbb970, headers=0x0) at index-mail-headers.c:365 #8 0x00048668 in index_mail_parse_bodystructure (mail=0xbb970, field=MAIL_CACHE_IMAP_BODYSTRUCTURE) at index-mail.c:525 #9 0x00048b9c in index_mail_get_special (_mail=Variable "_mail" is not available. ) at index-mail.c:687 #10 0x00037354 in mbox_mail_get_special (_mail=0xbb970, field=MAIL_FETCH_IMAP_BODYSTRUCTURE) at mbox-mail.c:145 #11 0x00063e0c in mail_get_special (mail=Variable "mail" is not available. ) at mail.c:114 #12 0x00023aa4 in fetch_bodystructure (ctx=0xb2370, mail=Variable "mail" is not available. ) at imap-fetch.c:375 #13 0x0002375c in imap_fetch (ctx=0xb2370) at imap-fetch.c:263 #14 0x0001e7a0 in cmd_fetch (cmd=0xb00b0) at cmd-fetch.c:166 #15 0x00021f98 in client_handle_input (cmd=0xb00b0) at client.c:355 #16 0x0002209c in _client_input (context=Variable "context" is not available. ) at client.c:406 #17 0x00078d74 in io_loop_handler_run (ioloop=0xad970) at ioloop-poll.c:189 #18 0x00078650 in io_loop_run (ioloop=0xad970) at ioloop.c:235 #19 0x0002a7d8 in main (argc=1, argv=0xffbffb5c, envp=0xffbffb64) at main.c:238 (gdb) up 4 #4 0x00049a74 in index_mail_parse_header (part=0x0, hdr=0xbd760, mail=0xbb970) at index-mail-headers.c:259 259 imap_bodystructure_parse_header(mail->data_pool, part, hdr); (gdb) print part $1 = (struct message_part *) 0x0 (gdb) print *part Cannot access memory at address 0x0 (gdb) print *input No symbol "input" in current context. (gdb) print *hdr $2 = {name = 0xbd7b8 "Return-Path", name_len = 11, value = 0xcc3ed "<customerservice@studentuniverse.com>\r\nReceived: from stage2.wdc.studentuniverse.com (stage2.studentuniverse.com [216.164.95.211])\r\nP id k0RJwIOM028905\r\n", value_len = 37, full_value = 0xcc3ed "<customerservice@studentuniverse.com>\r\nReceived: from stage2.wdc.studentuniverse.com (stage2.studentuniverse.com [216.164.95.211])\r\nP id k0RJwIOM028905\r\n", full_value_len = 37, middle = 0xcc3eb ": <customerservice@studentuniverse.com>\r\nReceived: from stage2.wdc.studentuniverse.com (stage2.studentuniverse.com [216.164.95.211])\r\nP id k0RJwIOM028905\r\n", middle_len = 2, name_offset = 0, full_value_offset = 13, continues = 0, continued = 0, eoh = 0, no_newline = 0, use_full_value = 0} (gdb) print *mail $3 = {mail = {mail = {box = 0xb6ff8, transaction = 0xbb1b8, seq = 4, uid = 1233, expunged = 0, has_nuls = 1, has_no_nuls = 0}, v = { free = 0x490e0 <index_mail_free>, set_seq = 0x48d20 <index_mail_set_seq>, get_flags = 0x47b3c <index_mail_get_flags>, get_keywords = 0x47b88 <index_mail_get_keywords>, get_parts = 0x47d0c <index_mail_get_parts>, get_received_date = 0x37224 <mbox_mail_get_received_date>, get_date = 0x47db8 <index_mail_get_date>, get_virtual_size = 0x47f60 <index_mail_get_virtual_size>, get_physical_size = 0x37368 <mbox_mail_get_physical_size>, get_first_header = 0x4a510 <index_mail_get_first_header>, get_headers = 0x4a274 <index_mail_get_headers>, get_header_stream = 0x4a570 <index_mail_get_header_stream>, get_stream = 0x37408 <mbox_mail_get_stream>, get_special = 0x37298 <mbox_mail_get_special>, update_flags = 0x49180 <index_mail_update_flags>, update_keywords = 0x491a4 <index_mail_update_keywords>, expunge = 0x491c8 <index_mail_expunge>}, pool = 0xbb940, module_contexts = {buffer = 0xbbad8, element_size = 4}}, data = { flags = MAIL_SEEN, date = 0, received_date = 1138391916, virtual_size = 35917, physical_size = 35337, sent_date = {time = -1, timezone = 0}, parse_line = {field_idx = 4294967295, start_pos = 168, end_pos = 201, line_num = 32, cache = 1}, parse_line_num = 41, parts = 0x0, envelope = 0xc0f10 "\"Fri, 27 Jan 2006 14:58:13 -0500 (EST)\" \"Your Order Confirmation\" ((NIL NIL \"customerservice\" \"studentuniverse.com\")) ((NIL NIL \"customerservice\" \"studentuniverse.com\")) ((NIL NIL \"customerservice\" \"s"..., body = 0x0, bodystructure = 0x0, uid_string = 0x0, envelope_data = 0xc05d0, seq = 4, rec = 0xff110140, cache_flags = 20, access_part = 3, stream = 0xcc210, filter_stream = 0xce220, hdr_size = { physical_size = 52, virtual_size = 52, lines = 1}, body_size = { physical_size = 34410, virtual_size = 34990, lines = 580}, parser_ctx = 0xbd398, parsing_count = 0, keywords = {buffer = 0xc0910, element_size = 4}, all_cache_fields = 0xc11b0, all_cache_fields_count = 26, save_sent_date = 0, save_envelope = 1, save_bodystructure_header = 1, save_bodystructure_body = 1, parsed_bodystructure = 0, hdr_size_set = 1, body_size_set = 1, messageparts_saved_to_cache = 0}, data_pool = 0xc01a8, ibox = 0xb6ff8, ---Type <return> to continue, or q <return> to quit--- trans = 0xbb1b8, uid_validity = 1121902144, wanted_fields = 24597, wanted_headers = 0xbaff0, header_seq = 4, header_data = 0xaeb80, header_lines = {buffer = 0xaeba8, element_size = 20}, header_match = { buffer = 0xaebd0, element_size = 1}, header_match_lines = { buffer = 0xaec20, element_size = 4}, header_match_value = 6 '\006'} (gdb) quit %exit exit
script done on Tue Jan 31 07:29:30 2006
Now that looks familiar. (See previous post of mine.)