[Dovecot] 1.0a3: assert and core dump

Jeff A. Earickson jaearick at colby.edu
Fri Oct 14 20:09:41 EEST 2005


Timo,

A rare assert and core dump out of 1.0alpha3.  My setup:
Solaris 9, mbox format, using imap only.  Built dovecot 
with gcc 4.0.1.  The syslog for this was:

Oct 14 11:57:56 emerald dovecot: [ID 107833 mail.info] imap-login: Login: user=<epmccull>, method=PLAIN, rip=137.146.210.59, lip=137.146.210.52, TLS
Oct 14 11:58:56 emerald dovecot: [ID 107833 mail.info] imap-login: Login: user=<epmccull>, method=PLAIN, rip=137.146.210.59, lip=137.146.210.52, TLS
Oct 14 11:59:03 emerald dovecot: [ID 107833 mail.error] imap(epmccull): Corrupted index cache file /home/students/e/epmccull/.imap/INBOX/dovecot.index.cache: invalid record size
Oct 14 11:59:38 emerald dovecot: [ID 107833 mail.error] imap(epmccull): Corrupted index cache file /home/students/e/epmccull/.imap/INBOX/dovecot.index.cache: Cache record offset 1768 points outside file
Oct 14 11:59:39 emerald dovecot: [ID 107833 mail.error] imap(epmccull): Corrupted index cache file /home/students/e/epmccull/.imap/INBOX/dovecot.index.cache: used_file_size too small
Oct 14 11:59:39 emerald dovecot: [ID 107833 mail.error] imap(epmccull): file mbox-lock.c: line 518 (mbox_lock): assertion failed: (lock_type == F_RDLCK || mbox->mbox_lock_type != F_RDLCK)

Attached is a gdb session on the core dump.  Thanks.

Jeff Earickson
Colby College
-------------- next part --------------
Script started on Fri Oct 14 13:02:45 2005
%gdb imap core.epmccull
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  0x000696b4 in i_internal_panic_handler (
    fmt=0x7c1f8 "file %s: line %d (%s): assertion failed: (%s)",
    args=0xffbff558) at failures.c:374
#3  0x00069198 in i_panic (
    format=0x7c1f8 "file %s: line %d (%s): assertion failed: (%s)")
    at failures.c:173
#4  0x000355e0 in mbox_lock (mbox=0xaedc8, lock_type=2, lock_id_r=0xffbff5ec)
    at mbox-lock.c:521
#5  0x0003ad10 in mbox_sync (mbox=0xaedc8, flags=MBOX_SYNC_LAST_COMMIT)
    at mbox-sync.c:1587
#6  0x0003377c in mbox_transaction_commit (_t=0xb9210, flags=0)
    at mbox-transaction.c:56
#7  0x0005bf78 in mailbox_transaction_commit (t=Variable "t" is not available.
) at mail-storage.c:421
#8  0x000225e0 in imap_fetch_deinit (ctx=0xa56b8) at imap-fetch.c:333
#9  0x0001d648 in cmd_fetch_finish (ctx=Variable "ctx" is not available.
) at cmd-fetch.c:80
#10 0x0001d8a4 in cmd_fetch (cmd=0xa3408) at cmd-fetch.c:176
#11 0x00020c48 in client_handle_input (cmd=0xa3408) at client.c:334
#12 0x00020d50 in _client_input (context=Variable "context" is not available.
) at client.c:386
#13 0x0006ebe0 in io_loop_handler_run (ioloop=0xa12d0) at ioloop-poll.c:184
#14 0x0006e4ac in io_loop_run (ioloop=0xa12d0) at ioloop.c:230
#15 0x00029350 in main (argc=0, argv=0xffbffb8c, envp=0xffbffb94) at main.c:229
(gdb) up 4
#4  0x000355e0 in mbox_lock (mbox=0xaedc8, lock_type=2, lock_id_r=0xffbff5ec)
    at mbox-lock.c:521
521             i_assert(mbox->ibox.index->lock_type != F_WRLCK);
(gdb) print *mbox
$1 = {ibox = {box = {name = 0xaef10 "INBOX", storage = 0xa3200, v = {
        is_readonly = 0x4456c <index_storage_is_readonly>,
        allow_new_keywords = 0x44578 <index_storage_allow_new_keywords>,
        close = 0x335a8 <mbox_storage_close>,
        get_status = 0x43b94 <index_storage_get_status>,
        sync_init = 0x3b228 <mbox_storage_sync_init>,
        sync_next = 0x449d8 <index_mailbox_sync_next>,
        sync_deinit = 0x44b50 <index_mailbox_sync_deinit>,
        notify_changes = 0x33650 <mbox_notify_changes>,
        transaction_begin = 0x3368c <mbox_transaction_begin>,
        transaction_commit = 0x336b0 <mbox_transaction_commit>,
        transaction_rollback = 0x337a8 <mbox_transaction_rollback>,
        keywords_create = 0x44650 <index_keywords_create>,
        keywords_free = 0x44668 <index_keywords_free>,
        get_uids = 0x3f37c <index_storage_get_uids>,
        mail_alloc = 0x4076c <index_mail_alloc>,
        header_lookup_init = 0x421f0 <index_header_lookup_init>,
        header_lookup_deinit = 0x423a8 <index_header_lookup_deinit>,
        search_get_sorting = 0x437fc <index_storage_search_get_sorting>,
        search_init = 0x43808 <index_storage_search_init>,
        search_deinit = 0x438ac <index_storage_search_deinit>,
        search_next = 0x43a44 <index_storage_search_next>,
        save_init = 0x364c8 <mbox_save_init>,
        save_continue = 0x3681c <mbox_save_continue>,
        save_finish = 0x36ae8 <mbox_save_finish>,
        save_cancel = 0x36c58 <mbox_save_cancel>,
        copy = 0x5b070 <mail_storage_copy>,
        is_inconsistent = 0x44588 <index_storage_is_inconsistent>},
      pool = 0xaed98, module_contexts = {buffer = 0xaef18, element_size = 4}},
    storage = 0xa3200, index = 0xa9848, view = 0xb8720, cache = 0xaf638,
    mail_vfuncs = 0x960f0, is_recent = 0x32810 <mbox_mail_is_recent>,
    md5hdr_ext_idx = 1, notify_to = 0x0, notify_files = 0x0, notify_ios = 0x0,
    notify_last_check = 0, notify_last_sent = 0, min_notify_interval = 0,
    notify_callback = 0, notify_context = 0x0, next_lock_notify = 1129305608,
    last_notify_type = MAILBOX_LOCK_NOTIFY_NONE, commit_log_file_seq = 0,
    commit_log_file_offset = 0, keyword_names = 0xa98c4,
    cache_fields = 0xaf798, recent_flags = 0x0, recent_flags_start_seq = 0,
    recent_flags_count = 0, synced_recent_count = 0,
    sync_last_check = 1129305577, readonly = 0, keep_recent = 0,
---Type <return> to continue, or q <return> to quit---
    recent_flags_synced = 1, sent_diskspace_warning = 0,
    sent_readonly_flags_warning = 0, notify_pending = 0,
    mail_read_mmaped = 0}, storage = 0xa3200,
  path = 0xaef50 "/var/mail/e/epmccull", mbox_fd = 7, mbox_stream = 0x0,
  mbox_file_stream = 0x0, mbox_lock_type = 1, mbox_dev = 68681734,
  mbox_ino = 6328, mbox_excl_locks = 0, mbox_shared_locks = 1,
  mbox_dotlock = 0x0, mbox_lock_id = 10, mbox_readonly = 0,
  mbox_writeonly = 0, mbox_dirty_stamp = 1129305578,
  mbox_dirty_size = 28031506, mbox_ext_idx = 2, mbox_sync_dirty = 0,
  mbox_do_dirty_syncs = 1, mbox_very_dirty_syncs = 0, mbox_save_md5 = 0,
  mbox_dotlocked = 0}
(gdb) print mbox->ibox.index->lock_type
$2 = 3
(gdb) print F_WRLCK
No symbol "F_WRLCK" in current context.
(gdb) quit
%exit
script done on Fri Oct 14 13:05:41 2005


More information about the dovecot mailing list