Hi, Two cores over the weekend, same assert message in syslog: imap(user): file message-body-search.c: line 393 (message_body_search_ctx): assertion failed: (input->v_offset <= part->physical_pos) Setup: Solaris 9, imap usage only, mbox format, dovecot compiled with gcc 4.0.1. gdb sessions of the two core files attached. Let me know if you need further analysis of the cores. Jeff Earickson Colby College -------------- next part -------------- Script started on Mon Sep 19 09:00:31 2005 %b[Kgdb %[Kstty erase %d[Kgdb imap core.acroman 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 0xff2201a0 in _libc_kill () from /usr/lib/libc.so.1 (gdb) backtrace #0 0xff2201a0 in _libc_kill () from /usr/lib/libc.so.1 #1 0xff1b6ce0 in abort () from /usr/lib/libc.so.1 #2 0x000695c4 in i_internal_panic_handler ( fmt=0x82578 "file %s: line %d (%s): assertion failed: (%s)", args=0xffbff210) at failures.c:374 #3 0x000690a8 in i_panic ( format=0x82578 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:173 #4 0x000633bc in message_body_search_ctx (ctx=0xffbff3dc, input=0xb9ca0, part=0xb21d8) at message-body-search.c:395 #5 0x00063464 in message_body_search_ctx (ctx=0xffbff3dc, input=0xb9ca0, part=0xb2188) at message-body-search.c:408 #6 0x00063464 in message_body_search_ctx (ctx=0xffbff3dc, input=0xb9ca0, part=0xb20e8) at message-body-search.c:408 #7 0x00063564 in message_body_search (key=Variable "key" is not available. ) at message-body-search.c:436 #8 0x000430fc in search_body (arg=0xac960, context=0xffbff5b8) at index-search.c:448 #9 0x0005b350 in search_arg_foreach (arg=0xac960, callback=0x43098 <search_body>, context=0xffbff5b8) at mail-search.c:81 #10 0x0005b384 in mail_search_args_foreach (args=0xac960, callback=0x43098 <search_body>, context=0xffbff5b8) at mail-search.c:93 #11 0x00043338 in search_arg_match_text (args=Variable "args" is not available. ) at index-search.c:528 #12 0x000439b4 in search_match_next (ctx=0xad850) at index-search.c:795 #13 0x00043a64 in index_storage_search_next (_ctx=Variable "_ctx" is not available. ) at index-search.c:823 #14 0x0005befc in mailbox_search_next (ctx=Variable "ctx" is not available. ) at mail-storage.c:408 #15 0x000261d4 in imap_sort (cmd=0xa3210, charset=0xa35e8 "US-ASCII", args=0xac938, sort_program=Variable "sort_program" is not available. ) at imap-sort.c:247 #16 0x0001f668 in cmd_sort (cmd=0xa3210) at cmd-sort.c:123 #17 0x0002028c in cmd_uid (cmd=0xa3210) at cmd-uid.c:19 #18 0x00020c60 in client_handle_input (cmd=0xa3210) at client.c:334 #19 0x00020d68 in _client_input (context=Variable "context" is not available. ) at client.c:386 #20 0x0006ea7c in io_loop_handler_run (ioloop=0xa10d8) at ioloop-poll.c:184 #21 0x0006e348 in io_loop_run (ioloop=0xa10d8) at ioloop.c:230 #22 0x00029348 in main (argc=0, argv=0xffbffb94, envp=0xffbffb9c) at main.c:229 (gdb) up 4 #4 0x000633bc in message_body_search_ctx (ctx=0xffbff3dc, input=0xb9ca0, part=0xb21d8) at message-body-search.c:395 395 i_stream_skip(input, part->physical_pos - input->v_offset); (gdb) print *ctx $1 = {pool = 0x0, key = 0x98f00 "MEETING", key_len = 7, charset = 0xa9788 "US-ASCII", unknown_charset = 0, search_header = 0} (gdb) print *input $2 = {v_offset = 1530, stream_errno = 0, mmaped = 0, closed = 0, seekable = 0, eof = 0, real_stream = 0xb9c78} (gdb) print *part $3 = {parent = 0xb2188, next = 0x0, children = 0xb2228, physical_pos = 1500, header_size = {physical_size = 857, virtual_size = 875, lines = 0}, body_size = {physical_size = 551367, virtual_size = 558548, lines = 0}, flags = 65, context = 0x0} (gdb) up #5 0x00063464 in message_body_search_ctx (ctx=0xffbff3dc, input=0xb9ca0, part=0xb2188) at message-body-search.c:408 408 if (message_body_search_ctx(ctx, input, part->children)) (gdb) print *ctx $4 = {pool = 0x0, key = 0x98f00 "MEETING", key_len = 7, charset = 0xa9788 "US-ASCII", unknown_charset = 0, search_header = 0} (gdb) print *input $5 = {v_offset = 1530, stream_errno = 0, mmaped = 0, closed = 0, seekable = 0, eof = 0, real_stream = 0xb9c78} (gdb) print *part $6 = {parent = 0xb20e8, next = 0x0, children = 0xb21d8, physical_pos = 1470, header_size = {physical_size = 30, virtual_size = 32, lines = 0}, body_size = {physical_size = 552224, virtual_size = 559423, lines = 7199}, flags = 68, context = 0x0} (gdb) up #6 0x00063464 in message_body_search_ctx (ctx=0xffbff3dc, input=0xb9ca0, part=0xb20e8) at message-body-search.c:408 408 if (message_body_search_ctx(ctx, input, part->children)) (gdb) print *ctx $7 = {pool = 0x0, key = 0x98f00 "MEETING", key_len = 7, charset = 0xa9788 "US-ASCII", unknown_charset = 0, search_header = 0} (gdb) print *input $8 = {v_offset = 1530, stream_errno = 0, mmaped = 0, closed = 0, seekable = 0, eof = 0, real_stream = 0xb9c78} (gdb) print *part $9 = {parent = 0x0, next = 0x0, children = 0xb2138, physical_pos = 0, header_size = {physical_size = 830, virtual_size = 830, lines = 0}, body_size = {physical_size = 552941, virtual_size = 560164, lines = 0}, flags = 65, context = 0x0} (gdb) print part->children $10 = (struct message_part *) 0xb2138 (gdb) print *(part->children) $11 = {parent = 0xb20e8, next = 0xb2188, children = 0x0, physical_pos = 911, header_size = {physical_size = 1, virtual_size = 2, lines = 0}, body_size = { physical_size = 513, virtual_size = 527, lines = 14}, flags = 72, context = 0x0} (gdb) down #5 0x00063464 in message_body_search_ctx (ctx=0xffbff3dc, input=0xb9ca0, part=0xb2188) at message-body-search.c:408 408 if (message_body_search_ctx(ctx, input, part->children)) (gdb) print *(part->children) $12 = {parent = 0xb2188, next = 0x0, children = 0xb2228, physical_pos = 1500, header_size = {physical_size = 857, virtual_size = 875, lines = 0}, body_size = {physical_size = 551367, virtual_size = 558548, lines = 0}, flags = 65, context = 0x0} (gdb) down #4 0x000633bc in message_body_search_ctx (ctx=0xffbff3dc, input=0xb9ca0, part=0xb21d8) at message-body-search.c:395 395 i_stream_skip(input, part->physical_pos - input->v_offset); (gdb) print *(part->children) $13 = {parent = 0xb21d8, next = 0xb2278, children = 0x0, physical_pos = 2439, header_size = {physical_size = 58, virtual_size = 61, lines = 0}, body_size = {physical_size = 3, virtual_size = 6, lines = 3}, flags = 72, context = 0x0} (gdb) quit %ls -l[5D[Kexit script done on Mon Sep 19 09:07:34 2005 -------------- next part -------------- Script started on Mon Sep 19 09:15:44 2005 %gdb imap core.tjstenov 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 0xff2201a0 in _libc_kill () from /usr/lib/libc.so.1 (gdb) backtrace #0 0xff2201a0 in _libc_kill () from /usr/lib/libc.so.1 #1 0xff1b6ce0 in abort () from /usr/lib/libc.so.1 #2 0x000695c4 in i_internal_panic_handler ( fmt=0x82578 "file %s: line %d (%s): assertion failed: (%s)", args=0xffbff298) at failures.c:374 #3 0x000690a8 in i_panic ( format=0x82578 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:173 #4 0x000633bc in message_body_search_ctx (ctx=0xffbff3d4, input=0x21c490, part=0x22cd88) at message-body-search.c:395 #5 0x00063464 in message_body_search_ctx (ctx=0xffbff3d4, input=0x21c490, part=0x22cd38) at message-body-search.c:408 #6 0x00063564 in message_body_search (key=Variable "key" is not available. ) at message-body-search.c:436 #7 0x000430fc in search_body (arg=0x1f5e80, context=0xffbff5b0) at index-search.c:448 #8 0x0005b350 in search_arg_foreach (arg=0x1f5e80, callback=0x43098 <search_body>, context=0xffbff5b0) at mail-search.c:81 #9 0x0005b384 in mail_search_args_foreach (args=0x1f5e80, callback=0x43098 <search_body>, context=0xffbff5b0) at mail-search.c:93 #10 0x00043338 in search_arg_match_text (args=Variable "args" is not available. ) at index-search.c:528 #11 0x000439b4 in search_match_next (ctx=0xaaac8) at index-search.c:795 #12 0x00043a64 in index_storage_search_next (_ctx=Variable "_ctx" is not available. ) at index-search.c:823 #13 0x0005befc in mailbox_search_next (ctx=Variable "ctx" is not available. ) at mail-storage.c:408 #14 0x000261d4 in imap_sort (cmd=0xa3210, charset=0xa35e0 "US-ASCII", args=0x1f5e80, sort_program=Variable "sort_program" is not available. ) at imap-sort.c:247 #15 0x0001f668 in cmd_sort (cmd=0xa3210) at cmd-sort.c:123 #16 0x0002028c in cmd_uid (cmd=0xa3210) at cmd-uid.c:19 #17 0x00020c60 in client_handle_input (cmd=0xa3210) at client.c:334 #18 0x00020d68 in _client_input (context=Variable "context" is not available. ) at client.c:386 #19 0x0006ea7c in io_loop_handler_run (ioloop=0xa10d8) at ioloop-poll.c:184 #20 0x0006e348 in io_loop_run (ioloop=0xa10d8) at ioloop.c:230 #21 0x00029348 in main (argc=0, argv=0xffbffb8c, envp=0xffbffb94) at main.c:229 (gdb) up 4 #4 0x000633bc in message_body_search_ctx (ctx=0xffbff3d4, input=0x21c490, part=0x22cd88) at message-body-search.c:395 395 i_stream_skip(input, part->physical_pos - input->v_offset); (gdb) print *ctx $1 = {pool = 0x0, key = 0x98f00 "MEETING", key_len = 7, charset = 0x1ab630 "US-ASCII", unknown_charset = 0, search_header = 0} (gdb) print *input $2 = {v_offset = 676, stream_errno = 0, mmaped = 0, closed = 0, seekable = 0, eof = 0, real_stream = 0x21c468} (gdb) print *part $3 = {parent = 0x22cd38, next = 0x0, children = 0x22cdd8, physical_pos = 673, header_size = {physical_size = 104, virtual_size = 108, lines = 0}, body_size = {physical_size = 28014, virtual_size = 28393, lines = 0}, flags = 65, context = 0x0} (gdb) up #5 0x00063464 in message_body_search_ctx (ctx=0xffbff3d4, input=0x21c490, part=0x22cd38) at message-body-search.c:408 408 if (message_body_search_ctx(ctx, input, part->children)) (gdb) print part *part $4 = {parent = 0x0, next = 0x0, children = 0x22cd88, physical_pos = 0, header_size = {physical_size = 646, virtual_size = 646, lines = 0}, body_size = {physical_size = 28174, virtual_size = 28561, lines = 0}, flags = 65, context = 0x0} (gdb) up #6 0x00063564 in message_body_search (key=Variable "key" is not available. ) at message-body-search.c:436 436 return message_body_search_ctx(&ctx, input, part); (gdb) print *key Variable "key" is not available. (gdb) print ctx $5 = {pool = 0x0, key = 0x98f00 "MEETING", key_len = 7, charset = 0x1ab630 "US-ASCII", unknown_charset = 0, search_header = 0} (gdb) print input $6 = (struct istream *) 0x21c490 (gdb) print *input $7 = {v_offset = 676, stream_errno = 0, mmaped = 0, closed = 0, seekable = 0, eof = 0, real_stream = 0x21c468} (gdb) print part $8 = (const struct message_part *) 0x22cd38 (gdb) print *part $9 = {parent = 0x0, next = 0x0, children = 0x22cd88, physical_pos = 0, header_size = {physical_size = 646, virtual_size = 646, lines = 0}, body_size = {physical_size = 28174, virtual_size = 28561, lines = 0}, flags = 65, context = 0x0} (gdb) up #7 0x000430fc in search_body (arg=0x1f5e80, context=0xffbff5b0) at index-search.c:448 448 ret = message_body_search(arg->value.str, (gdb) print *arg $10 = {next = 0x0, type = SEARCH_BODY, value = {subargs = 0x0, seqset = 0x0, str = 0x1f5ea8 "meeting"}, context = 0x0, hdr_field_name = 0x0, not = 0, match_always = 0, result = -1} (gdb) print *context Attempt to dereference a generic pointer. (gdb) print (struct search_body_context *) contec xt $11 = (struct search_body_context *) 0xffbff5b0 (gdb) print (struct search_body_context * ) context $12 = {index_ctx = 0xffbff5b0, input = 0x21c490, part = 0x0} (gdb) quit %l[Kexit exit script done on Mon Sep 19 09:21:19 2005