e-frog wrote:
Timo Sirainen schrieb:
On Sat, 2009-06-06 at 16:18 +0200, e-frog wrote:
Jun 6 14:40:19 server dovecot: IMAP(user): Panic: file virtual-sync.c: line 502 (virtual_sync_mailbox_box_remove): assertion failed: (rec_count >= uid_count) Hmm. This is kind of difficult. Can you reproduce it? What does your dovecot-virtual file contain?
I haven't seen it again since that time. I'll do some further testing with the latest hg version and report back if I ever see it again.
The dovecot-virtual file is very simple:
cat dovecot-virtual * unseen
Trying to find a condition to reproduce the above issue I've seen an imap process consuming 100% CPU. Attaching gdb to the process I got the backtrace below. Strace isn't showing anything. Not sure if this is related to the crash above. Unfortunately I'm also not able to reproduce this stable.
GNU gdb 6.8-debian Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu". Attaching to process 6376 Reading symbols from /usr/lib/dovecot/imap...done. Reading symbols from /lib/tls/i686/cmov/libdl.so.2...Reading symbols from /usr/lib/debug/lib/tls/i686/cmov/libdl-2.9.so...done. done. Loaded symbols for /lib/tls/i686/cmov/libdl.so.2 Reading symbols from /lib/tls/i686/cmov/libc.so.6...Reading symbols from /usr/lib/debug/lib/tls/i686/cmov/libc-2.9.so...done. done. Loaded symbols for /lib/tls/i686/cmov/libc.so.6 Reading symbols from /lib/ld-linux.so.2...Reading symbols from /usr/lib/debug/lib/ld-2.9.so...done. done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /usr/lib/dovecot/modules/imap/lib10_quota_plugin.so...done. Loaded symbols for /usr/lib/dovecot/modules/imap/lib10_quota_plugin.so Reading symbols from /usr/lib/dovecot/modules/imap/lib11_imap_quota_plugin.so...done. Loaded symbols for /usr/lib/dovecot/modules/imap/lib11_imap_quota_plugin.so Reading symbols from /usr/lib/dovecot/modules/imap/lib20_expire_plugin.so...done. Loaded symbols for /usr/lib/dovecot/modules/imap/lib20_expire_plugin.so Reading symbols from /usr/lib/dovecot/modules/imap/lib20_fts_plugin.so...done. Loaded symbols for /usr/lib/dovecot/modules/imap/lib20_fts_plugin.so Reading symbols from /usr/lib/dovecot/modules/imap/lib20_virtual_plugin.so...done. Loaded symbols for /usr/lib/dovecot/modules/imap/lib20_virtual_plugin.so Reading symbols from /usr/lib/dovecot/modules/imap/lib21_fts_squat_plugin.so...done. Loaded symbols for /usr/lib/dovecot/modules/imap/lib21_fts_squat_plugin.so 0x081022a0 in seq_range_array_add (array=0xbff43a84, init_count=0, seq=57) at seq-range-array.c:54 54 if (data[count-1].seq2 == seq-1) { (gdb) bt full #0 0x081022a0 in seq_range_array_add (array=0xbff43a84, init_count=0, seq=57) at seq-range-array.c:54 value = {seq1 = 57, seq2 = 57} idx = <value optimized out> __PRETTY_FUNCTION__ = "seq_range_array_add" #1 0xb7e9771c in virtual_sync_backend_boxes (ctx=0x935cca0) at virtual-sync.c:790 _data_stack_cur_id = 4 i = 4 ret = 0 #2 0xb7e98dc4 in virtual_storage_sync_init (box=0x92485d0, flags=0) at virtual-sync.c:1445 sync_ctx = <value optimized out> ret = <value optimized out> #3 0x080700d4 in imap_sync_init (client=0x8f7b188, box=0x92485d0, imap_flags=0, flags=0) at imap-sync.c:146 ctx = (struct imap_sync_context *) 0x92ae7d0 __PRETTY_FUNCTION__ = "imap_sync_init" #4 0x080626c2 in idle_sync_now (box=<value optimized out>, ctx=0x8f6ea38) at cmd-idle.c:122 __PRETTY_FUNCTION__ = "idle_sync_now" #5 0x08062829 in cmd_idle (cmd=0x8f7b418) at cmd-idle.c:243 client = (struct client *) 0x8f7b188 ctx = <value optimized out> str = <value optimized out> interval = <value optimized out> #6 0x0806766c in client_command_input (cmd=0x8f7b418) at client.c:611 client = (struct client *) 0x8f7b188 command = <value optimized out> __PRETTY_FUNCTION__ = "client_command_input" #7 0x08067713 in client_command_input (cmd=0x8f7b418) at client.c:660 client = (struct client *) 0x8f7b188 command = <value optimized out> __PRETTY_FUNCTION__ = "client_command_input" #8 0x0806786d in client_handle_input (client=0x8f7b188) at client.c:701 _data_stack_cur_id = 3 ret = false remove_io = <value optimized out> handled_commands = false __PRETTY_FUNCTION__ = "client_handle_input" #9 0x080681cf in client_input (client=0x8f7b188) at client.c:752 ---Type <return> to continue, or q <return> to quit--- cmd = <value optimized out> output = (struct ostream *) 0x8f7b33c bytes = <value optimized out> __PRETTY_FUNCTION__ = "client_input" #10 0x080f9b00 in io_loop_handler_run (ioloop=0x8f769b0) at ioloop-epoll.c:208 ctx = (struct ioloop_handler_context *) 0x8f76ab8 event = (const struct epoll_event *) 0x8f76af8 list = (struct io_list *) 0x8f7b3c0 io = (struct io_file *) 0x8f8cdc0 tv = {tv_sec = 4, tv_usec = 344429} t_id = 2 msecs = <value optimized out> ret = 1 i = 0 j = 0 call = <value optimized out> #11 0x080f8f80 in io_loop_run (ioloop=0x8f769b0) at ioloop.c:338 No locals. #12 0x08070c55 in main (argc=Cannot access memory at address 0x38 ) at main.c:323 No locals.