[Dovecot] alpha5: assert and core

Jeff A. Earickson
Mon, 19 Dec 2005 15:54:57 -0000

My setup:  Solaris 9, dovecot built with gcc 4.0.2.  Mailboxes on
remote NFS file mount from another S9 box (mbox format), index files
local disk.  IMAP usage only.  Dovecot build like so:

VERSION=1.0.alpha5
CC=gcc CFLAGS="-g -O" CPPFLAGS=-I/opt/openssl/include \
LDFLAGS=-L/opt/openssl/lib \
./configure --prefix=/opt/dovecot.$VERSION --with-ssl=openssl \
--with-ssldir=/opt/openssl/ssl  > configure.out

The assertion:

Dec 16 14:59:54 emerald dovecot: [ID 107833 mail.error] imap(user): file
message-body-search.c: line 414 (message_body_search_ctx): assertion failed:
(input->v_offset == part->physical_pos +
part->header_size.physical_size)
Dec 16 14:59:58 emerald dovecot: [ID 107833 mail.error] imap(user): file
message-body-search.c: line 414 (message_body_search_ctx): assertion failed:
(input->v_offset == part->physical_pos +
part->header_size.physical_size)

(twice in four seconds).  The gdb traceback and core dump analysis
is attached.  This is the only core from alpha5 in about a week's
worth of production usage.

Jeff Earickson
Colby College
-------------- next part --------------
%gdb imap core.emorbeck
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) backtrace
#0  0xff2204f8 in _libc_kill () from /usr/lib/libc.so.1
#1  0xff1b6d18 in abort () from /usr/lib/libc.so.1
#2  0x000700cc in i_internal_panic_handler (
    fmt=0x8c6c8 "file %s: line %d (%s): assertion failed: (%s)",
    args=0xffbff328) at failures.c:375
#3  0x0006fba4 in i_panic (
    format=0x8c6c8 "file %s: line %d (%s): assertion failed: (%s)")
    at failures.c:173
#4  0x00069eac in message_body_search_ctx (ctx=0xffbff3d4, input=0xc2410,
    part=0xba738) at message-body-search.c:415
#5  0x00069f94 in message_body_search (key=Variable "key" is not
available.
) at message-body-search.c:440
#6  0x00049e3c in search_body (arg=0xb4f80, context=0xffbff5b0)
    at index-search.c:448
#7  0x00061d1c in search_arg_foreach (arg=0xb4f80,
    callback=0x49dd8 <search_body>, context=0xffbff5b0) at
mail-search.c:81
#8  0x00061d50 in mail_search_args_foreach (args=0xb4f80,
    callback=0x49dd8 <search_body>, context=0xffbff5b0) at
mail-search.c:93
#9  0x0004a078 in search_arg_match_text (args=Variable "args" is not
available.
) at index-search.c:528
#10 0x0004a6f4 in search_match_next (ctx=0xb5ea0) at index-search.c:795
#11 0x0004a7a4 in index_storage_search_next (_ctx=Variable "_ctx" is
not available.
) at index-search.c:823
#12 0x000628c8 in mailbox_search_next (ctx=Variable "ctx" is not
available.
) at mail-storage.c:408
#13 0x00026dd0 in imap_sort (cmd=0xac2f0, charset=0xac6c0 "US-ASCII",
    args=0xb4f80, sort_program=Variable "sort_program" is not
available.
) at imap-sort.c:247
#14 0x0002022c in cmd_sort (cmd=0xac2f0) at cmd-sort.c:123
#15 0x00020e50 in cmd_uid (cmd=0xac2f0) at cmd-uid.c:19
#16 0x00021838 in client_handle_input (cmd=0xac2f0) at client.c:338
#17 0x00021940 in _client_input (context=Variable "context" is not
available.
) at client.c:390
#18 0x0007581c in io_loop_handler_run (ioloop=0xa9bb0) at ioloop-poll.c:190
#19 0x000750a8 in io_loop_run (ioloop=0xa9bb0) at ioloop.c:230
#20 0x00029fbc in main (argc=0, argv=0xffbffb8c, envp=0xffbffb94) at main.c:235
(gdb) up 4
#4  0x00069eac in message_body_search_ctx (ctx=0xffbff3d4, input=0xc2410,
    part=0xba738) at message-body-search.c:415
415                             if (message_search_body(&part_ctx, input,
part))
(gdb) print *ctx
$1 = {pool = 0x0, key = 0xa1a50 "JETBLUE", key_len = 7,
  charset = 0xab498 "US-ASCII", unknown_charset = 0, search_header =
0}
(gdb) print *input
$2 = {v_offset = 939, stream_errno = 0, mmaped = 0, closed = 0, seekable = 0,
  eof = 0, real_stream = 0xc23e8}
(gdb) print *part
$3 = {parent = 0x0, next = 0x0, children = 0x0, physical_pos = 0,
  header_size = {physical_size = 909, virtual_size = 909, lines = 0},
  body_size = {physical_size = 384, virtual_size = 390, lines = 6},
  flags = 72, context = 0x0}
(gdb) print part_ctx
$4 = {body_ctx = 0xffbff3d4, translation = 0x0, decode_buf = 0x0,
  match_buf = 0x0, content_type = 0xab510 "text/plain",
  content_charset = 0xab4f8 "US-ASCII", content_qp = 0, content_base64
= 0,
  content_unknown = 0, content_type_text = 1, ignore_header = 1}
(gdb) quit