[Dovecot] dovecot rc7 assert, core

Jeff A. Earickson jaearick at colby.edu
Wed Sep 20 20:22:49 EEST 2006


Hi,

Wow, I haven't had an assert/core in dovecot in a long time.
Here goes:

Setup: Solaris 10, dovecot built with gcc 4.1.1, imap and imaps
only.  User's home directory lives on a ZFS filesystem, but I
don't think that makes a difference.  So does every other user
here (>3K).

Assert:
IMAP(mulepri): file message-body-search.c: line 393 
(message_body_search_ctx): assertion failed: (input->v_offset <= 
part->physical_pos)

gdb backtrace and other poking at the core is attached.

Jeff Earickson
Colby College
-------------- next part --------------
Script started on Wed Sep 20 13:13:11 2006
%gdb imap core.mulepri
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.10"...
Core was generated by `imap'.
Program terminated with signal 6, Aborted.
Reading symbols from /lib/libsocket.so.1...done.
Loaded symbols for /lib/libsocket.so.1
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/librt.so.1...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/libsendfile.so.1...done.
Loaded symbols for /lib/libsendfile.so.1
Reading symbols from /lib/libc.so.1...done.
Loaded symbols for /lib/libc.so.1
Reading symbols from /lib/libaio.so.1...done.
Loaded symbols for /lib/libaio.so.1
Reading symbols from /lib/libmd5.so.1...done.
Loaded symbols for /lib/libmd5.so.1
Reading symbols from /platform/SUNW,Ultra-60/lib/libc_psr.so.1...done.
Loaded symbols for /platform/SUNW,Ultra-60/lib/libc_psr.so.1
Reading symbols from /opt/dovecot.1.0.rc7/lib/dovecot/imap/lib01_quota_plugin.so...done.
Loaded symbols for /opt/dovecot.1.0.rc7/lib/dovecot/imap/lib01_quota_plugin.so
Reading symbols from /net/local/lib/libgcc_s.so.1...done.
Loaded symbols for /usr/local/lib/libgcc_s.so.1
Reading symbols from /lib/libscf.so.1...done.
Loaded symbols for /lib/libscf.so.1
Reading symbols from /lib/libdoor.so.1...done.
Loaded symbols for /lib/libdoor.so.1
Reading symbols from /lib/libuutil.so.1...done.
Loaded symbols for /lib/libuutil.so.1
Reading symbols from /platform/SUNW,Ultra-60/lib/libmd5_psr.so.1...done.
Loaded symbols for /platform/SUNW,Ultra-60/lib/libmd5_psr.so.1
Reading symbols from /lib/libmp.so.2...done.
Loaded symbols for /lib/libmp.so.2
Reading symbols from /opt/dovecot.1.0.rc7/lib/dovecot/imap/lib02_imap_quota_plugin.so...done.
Loaded symbols for /opt/dovecot.1.0.rc7/lib/dovecot/imap/lib02_imap_quota_plugin.so
#0  0xff1c1294 in _lwp_kill () from /lib/libc.so.1
(gdb) backtrace
#0  0xff1c1294 in _lwp_kill () from /lib/libc.so.1
#1  0xff15fe20 in raise () from /lib/libc.so.1
#2  0xff140040 in abort () from /lib/libc.so.1
#3  0x00075d5c in i_internal_panic_handler (fmt=0x0, args=0x1) at failures.c:379
#4  0x00076148 in i_panic (format=0x946c0 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:177
#5  0x0006e868 in message_body_search_ctx (ctx=0x946c0, input=0x946f0, part=0x189) at message-body-search.c:395
#6  0x0006eac8 in message_body_search_ctx (ctx=0xffbff52c, input=0xc6450, part=0xbe7a8) at message-body-search.c:409
#7  0x0006f104 in message_body_search (key=0xffbff52c "", charset=0xc6450 "", input=0xbe758, part=0xb,
    search_header=36, error_r=0x80808080) at message-body-search.c:448
#8  0x0004d850 in search_body (arg=0xb72c8, context=Variable "context" is not available.
) at index-search.c:479
#9  0x00067370 in search_arg_foreach (arg=0xb72a0, callback=0xffbff708, context=0xffbff708) at mail-search.c:83
#10 0x000673a4 in mail_search_args_foreach (args=0xb72a0, callback=0x4d7e8 <search_body>, context=0xffbff708)
    at mail-search.c:95
#11 0x0004d71c in index_storage_search_next (_ctx=0xff392000, mail=0x4d7e8) at index-search.c:577
#12 0x000677f8 in mailbox_search_next (ctx=Variable "ctx" is not available.
) at mail-storage.c:485
#13 0x0002078c in cmd_search (cmd=0xff392000) at cmd-search.c:30
#14 0x000224d8 in _client_input (context=Variable "context" is not available.
) at client.c:377
#15 0x0007b598 in io_loop_handler_run (ioloop=0xb4fe8) at ioloop-poll.c:199
#16 0x0007adbc in io_loop_run (ioloop=0xb1fa0) at ioloop.c:281
#17 0x0002a8f4 in main (argc=728992, argv=0x1, envp=Variable "envp" is not available.
) at main.c:280
(gdb) print *ctx
No symbol "ctx" in current context.
(gdb) up 4
#4  0x00076148 in i_panic (format=0x946c0 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:177
177             panic_handler(format, args);
(gdb) up
#5  0x0006e868 in message_body_search_ctx (ctx=0x946c0, input=0x946f0, part=0x189) at message-body-search.c:395
395                     i_stream_skip(input, part->physical_pos - input->v_offset);
(gdb) print *ctx
$1 = {pool = 0x66696c65, key = 0x2025733a <Address 0x2025733a out of bounds>, key_len = 543975790,
  charset = 0x65202564 <Address 0x65202564 out of bounds>, unknown_charset = 0, search_header = 0}
(gdb) print *input
$2 = {v_offset = 7882833662174520621, stream_errno = 1651467385, mmaped = 0, closed = 0, seekable = 1, eof = 0,
  real_stream = 0x7263682e}
(gdb) print *part
Cannot access memory at address 0x189
(gdb) print part
$3 = (const struct message_part *) 0x189
(gdb) print &part
Can't take address of "part" which isn't an lvalue.
(gdb) print input->v_offset
$4 = 7882833662174520621
(gdb) print part->physical_pos
Cannot access memory at address 0x199
(gdb) up
#6  0x0006eac8 in message_body_search_ctx (ctx=0xffbff52c, input=0xc6450, part=0xbe7a8) at message-body-search.c:409
409                             if (message_body_search_ctx(ctx, input, part->children))
(gdb) print *ctx
$5 = {pool = 0x0, key = 0xa9d70 "CHARSETTEST", key_len = 11, charset = 0xb4520 "UTF-8", unknown_charset = 0,
  search_header = 1}
(gdb) print *input
$6 = {v_offset = 957, stream_errno = 0, mmaped = 0, closed = 0, seekable = 0, eof = 0, real_stream = 0xc6428}
(gdb) print *part
$7 = {parent = 0xbe758, next = 0xbe7f8, children = 0x0, physical_pos = 955, header_size = {physical_size = 119,
    virtual_size = 125, lines = 0}, body_size = {physical_size = 1330, virtual_size = 1379, lines = 49}, flags = 72,
  context = 0x0}
(gdb) print ret
$8 = -13033472
(gdb) down
#5  0x0006e868 in message_body_search_ctx (ctx=0x946c0, input=0x946f0, part=0x189) at message-body-search.c:395
395                     i_stream_skip(input, part->physical_pos - input->v_offset);
(gdb) print ret
$9 = -13033472
(gdb) quit
%exit
exit

script done on Wed Sep 20 13:17:15 2006


More information about the dovecot mailing list