[Dovecot] assertion failed in 1.1.7 file mbox-sync.c: line 1305 (mbox_sync_handle_eof_updates)
Dovecot 1.1.7 is running so smoothly that I gave up checking its log files daily. :)
I've just had a look, and among the usual "IMAP(username): FETCH for mailbox Sent UID xx got too little data: xx vs xx" messages (that means that unfortunately sometimes some messages are still written truncated) I saw this assertion failure:
file mbox-sync.c: line 1305 (mbox_sync_handle_eof_updates): assertion failed: (file_size >= sync_ctx->expunged_space + trailer_size)
Regards, Diego.
(gdb) bt full #0 0x008a9402 in __kernel_vsyscall () No symbol table info available. #1 0x00a2fd20 in raise () from /lib/libc.so.6 No symbol table info available. #2 0x00a31631 in abort () from /lib/libc.so.6 No symbol table info available. #3 0x080f73c0 in default_fatal_finish (type=LOG_TYPE_PANIC, status=0) at failures.c:150 backtrace = 0x97df358 "/usr/libexec/dovecot/imap [0x80f739e] -> /usr/libexec/dovecot/imap [0x80f7c5f] -> /usr/libexec/dovecot/imap(i_fatal+0) [0x80f7518] -> /usr/libexec/dovecot/imap [0x80911de] -> /usr/libexec/dovecot/imap"... #4 0x080f7c5f in i_internal_fatal_handler (type=LOG_TYPE_PANIC, status=0, fmt=0x811771c "file %s: line %d (%s): assertion failed: (%s)", args=0xbfbabf14 "\020w\021\b\031\005") at failures.c:430 No locals. #5 0x080f7518 in i_panic (format=0x811771c "file %s: line %d (%s): assertion failed: (%s)") at failures.c:197 args = 0xbfbabf14 "\020w\021\b\031\005" #6 0x080911de in mbox_sync_handle_eof_updates (sync_ctx=0xbfbac0f4, mail_ctx=0xbfbac008) at mbox-sync.c:1305 st = (const struct stat *) 0x97f3420 file_size = 242 offset = 242 padding = 684287899293748052 trailer_size = 0 __PRETTY_FUNCTION__ = "mbox_sync_handle_eof_updates" #7 0x08091d77 in mbox_sync_do (sync_ctx=0xbfbac0f4, flags=0) at mbox-sync.c:1547 mail_ctx = {sync_ctx = 0xbfbac0f4, mail = {uid = 0, idx_seq = 1, keywords = {arr = {buffer = 0x0, element_size = 0}, v = 0x0, v_modifiable = 0x0}, flags = 12 '\f', uid_broken = 0, expunged = 1, pseudo = 0, from_offset = 0, body_size = 0, offset = 0, space = 243}, seq = 1, hdr_offset = 66, body_offset = 151, header_first_change = 4294967295, header_last_change = 0, header = 0x9800878, hdr_md5_sum = "�\035\214�\217\000�\004�\200\t\230��B~", content_length = 18446744073709551615, hdr_pos = {69, 12, 4294967295, 82, 32}, parsed_uid = 2, last_uid_updated_value = 0, last_uid_value_start_pos = 2, have_eoh = 1, need_rewrite = 0, seen_imapbase = 1, updated = 0, recent = 0, dirty = 0, imapbase_rewrite = 0, imapbase_updated = 0} st = (const struct stat *) 0x97f3420 i = 0 ret = 1 partial = 1 #8 0x0809277e in mbox_sync_int (mbox=0x97f0c28, flags=0) at mbox-sync.c:1806 index_sync_ctx = (struct mail_index_sync_ctx *) 0x9808b38 sync_view = (struct mail_index_view *) 0x97f1648 trans = (struct mail_index_transaction *) 0x97f3168 sync_ctx = {mbox = 0x97f0c28, flags = 0, input = 0x97f34e8, file_input = 0x97f3400, write_fd = 8, orig_mtime = 1227954336, orig_atime = 1227954336, orig_size = 242, last_stat = {st_dev = 37637, __pad1 = 0, __st_ino = 4751377, st_mode = 33152, st_nlink = 1, st_uid = 631, st_gid = 508, st_rdev = 0, __pad2 = 0, st_size = 242, st_blksize = 4096, st_blocks = 16, st_atim = { tv_sec = 1227960259, tv_nsec = 0}, st_mtim = {tv_sec = 1227954336, tv_nsec = 0}, st_ctim = {tv_sec = 1227954336, tv_nsec = 0}, st_ino = 4751377}, index_sync_ctx = 0x9808b38, sync_view = 0x97f1648, t = 0x97f3168, reset_hdr = {major_version = 0 '\0', minor_version = 0 '\0', base_header_size = 0, header_size = 0, record_size = 0, compat_flags = 0 '\0', unused = "\000\000", indexid = 0, flags = 0, uid_validity = 0, next_uid = 0, messages_count = 0, unused_old_recent_messages_count = 0, seen_messages_count = 0, deleted_messages_count = 0, first_recent_uid = 0, first_unseen_uid_lowwater = 0, first_deleted_uid_lowwater = 0, log_file_seq = 0, log_file_tail_offset = 0, log_file_head_offset = 0, sync_size = 0, sync_stamp = 0, day_stamp = 0, day_first_uid = {0, 0, 0, 0, 0, 0, 0, 0}}, hdr = 0x97f1300, header = 0x9800878, from_line = 0x9800858, base_uid_validity = 1, base_uid_last = 2, base_uid_last_offset = 0, mails = {arr = {buffer = 0x97f8c40, element_size = 52}, v = 0x97f8c40, v_modifiable = 0x97f8c40}, sync_changes = 0x97f8c60, mail_keyword_pool = 0x9800168, saved_keywords_pool = 0x97f50d8, prev_msg_uid = 2, next_uid = 3, idx_next_uid = 3, seq = 1, idx_seq = 2, need_space_seq = 0, last_nonrecent_uid = 0, expunged_space = 243, space_diff = 0, dest_first_mail = 1, first_mail_crlf_expunged = 0, delay_writes = 1, renumber_uids = 0, moved_offsets = 0, ext_modified = 0, index_reset = 0, errors = 0} sync_flags = MAIL_INDEX_SYNC_FLAG_DROP_RECENT lock_id = 23 ret = 1 changed = 1 delay_writes = true __PRETTY_FUNCTION__ = "mbox_sync_int" #9 0x08092a0a in mbox_sync (mbox=0x97f0c28, flags=0) at mbox-sync.c:1873 ret = 1 #10 0x08092ad8 in mbox_storage_sync_init (box=0x97f0c28, flags=MAILBOX_SYNC_FLAG_FIX_INCONSISTENT) at mbox-sync.c:1897 mbox = (struct mbox_mailbox *) 0x97f0c28 mbox_sync_flags = 0 ret = 0 #11 0x080b70a4 in mailbox_sync_init (box=0x97f0c28, flags=MAILBOX_SYNC_FLAG_FIX_INCONSISTENT) at mail-storage.c:516 No locals. #12 0x080b711b in mailbox_sync (box=0x97f0c28, flags=MAILBOX_SYNC_FLAG_FIX_INCONSISTENT, status_items=0, status_r=0x0) at mail-storage.c:545 ctx = (struct mailbox_sync_context *) 0x0 #13 0x0805b5b7 in cmd_close (cmd=0x97e95c8) at cmd-close.c:21 client = (struct client *) 0x97e9368 mailbox = (struct mailbox *) 0x97f0c28 storage = (struct mail_storage *) 0x97e8c80 #14 0x080625c4 in client_command_input (cmd=0x97e95c8) at client.c:580 client = (struct client *) 0x97e9368 command = (struct command *) 0x7 __PRETTY_FUNCTION__ = "client_command_input" #15 0x080627f9 in client_command_input (cmd=0x97e95c8) at client.c:629 client = (struct client *) 0x97e9368 command = (struct command *) 0x97e856c __PRETTY_FUNCTION__ = "client_command_input" #16 0x080628f7 in client_handle_next_command (client=0x97e9368, remove_io_r=0xbfbac4a5) at client.c:670 size = 11 #17 0x08062933 in client_handle_input (client=0x97e9368) at client.c:680 _data_stack_cur_id = 3 ret = 126 remove_io = false handled_commands = false #18 0x08062ac1 in client_input (client=0x97e9368) at client.c:725 cmd = (struct client_command_context *) 0xad8408 output = (struct ostream *) 0x97e94f4 bytes = 11 __PRETTY_FUNCTION__ = "client_input" #19 0x08101ecd in io_loop_handler_run (ioloop=0x97e79b0) at ioloop-epoll.c:203 ctx = (struct ioloop_handler_context *) 0x97e7aa8 events = (struct epoll_event *) 0x97e7ae8 event = (const struct epoll_event *) 0x97e7ae8 list = (struct io_list *) 0x97e9570 io = (struct io_file *) 0x9800550 tv = {tv_sec = 0, tv_usec = 354274} events_count = 4 t_id = 2 msecs = 355 ret = 1 i = 0 j = 0 call = true #20 0x08101164 in io_loop_run (ioloop=0x97e79b0) at ioloop.c:320 No locals. #21 0x0806df19 in main (argc=1, argv=0xbfbac604, envp=0xbfbac60c) at main.c:293 No locals. (gdb)
On Thu, Dec 4, 2008 at 8:26 AM, Diego Liziero <diegoliz@gmail.com> wrote:
Dovecot 1.1.7 is running so smoothly that I gave up checking its log files daily. :)
I've just had a look, and among the usual "IMAP(username): FETCH for mailbox Sent UID xx got too little data: xx vs xx" messages (that means that unfortunately sometimes some messages are still written truncated) I saw this assertion failure:
file mbox-sync.c: line 1305 (mbox_sync_handle_eof_updates): assertion failed: (file_size >= sync_ctx->expunged_space + trailer_size)
Btw: (gdb) fr 6 #6 0x080911de in mbox_sync_handle_eof_updates (sync_ctx=0xbfbac0f4, mail_ctx=0xbfbac008) at mbox-sync.c:1305 1305 i_assert(file_size >= sync_ctx->expunged_space
- trailer_size); (gdb) print file_size $1 = 242 (gdb) print sync_ctx->expunged_space $2 = 243 (gdb) print trailer_size $3 = 0
Regards, Diego.
On Sat, 2008-12-13 at 10:49 +0100, Diego Liziero wrote:
On Thu, Dec 4, 2008 at 8:26 AM, Diego Liziero <diegoliz@gmail.com> wrote:
Dovecot 1.1.7 is running so smoothly that I gave up checking its log files daily. :)
I've just had a look, and among the usual "IMAP(username): FETCH for mailbox Sent UID xx got too little data: xx vs xx" messages (that means that unfortunately sometimes some messages are still written truncated) I saw this assertion failure:
Is this still the case after the new mbox changes? Are these UID got too little data all about truncated messages? Are they only happening in Sent mailbox?
(gdb) fr 6 #6 0x080911de in mbox_sync_handle_eof_updates (sync_ctx=0xbfbac0f4, mail_ctx=0xbfbac008) at mbox-sync.c:1305 1305 i_assert(file_size >= sync_ctx->expunged_space
- trailer_size); (gdb) print file_size $1 = 242 (gdb) print sync_ctx->expunged_space $2 = 243
So it's expunging more than it has. Not good. :)
participants (2)
-
Diego Liziero
-
Timo Sirainen