[Dovecot] 1.2rc5 Panic: file virtual-sync.c
mail.log:
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) Jun 6 14:40:19 server dovecot: IMAP(user): Raw backtrace: imap [0x80f0d21] -> imap [0x80f0da2] -> imap [0x80f06d9] -> /usr/lib/dovecot/modules/imap/lib20_virtual_plugin.so [0xb7ec36b4] -> /usr/lib/dovecot/modules/imap/lib20_virtual_plugin.so [0xb7ec4c7b] -> /usr/lib/dovecot/modules/imap/lib20_virtual_plugin.so(virtual_storage_sync_init+0x634) [0xb7ec5dc4] -> imap(imap_sync_init+0x54) [0x806fff4] -> imap(cmd_sync_delayed+0x24b) [0x807031b] -> imap(client_handle_input+0x1bc) [0x80679ac] -> imap(client_input+0x5f) [0x806817f] -> imap(io_loop_handler_run+0xe0) [0x80f99d0] -> imap(io_loop_run+0x20) [0x80f8e50] -> imap(main+0x5f5) [0x8070b85] -> /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7ef8775] -> imap [0x805ff91] Jun 6 14:40:19 server dovecot: dovecot: child 13847 (imap) killed with signal 6 (core dumped)
backtrace:
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"...
warning: Can't read pathname for load map: Input/output error. 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 Reading symbols from /lib/libgcc_s.so.1...done. Loaded symbols for /lib/libgcc_s.so.1 Core was generated by `imap [user 192.168.178.41]'. Program terminated with signal 6, Aborted. [New process 13847] #0 0xb8053424 in __kernel_vsyscall () (gdb) bt full #0 0xb8053424 in __kernel_vsyscall () No symbol table info available. #1 0xb7f0d6d0 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 resultvar = <value optimized out> pid = -1207693324 selftid = 13847 #2 0xb7f0f098 in *__GI_abort () at abort.c:88 act = {__sigaction_handler = {sa_handler = 0x935ee68, sa_sigaction = 0x935ee68}, sa_mask = {__val = {3215393416, 135195514, 3087272224, 0, 3215393536, 3215393524, 512, 0, 0, 3215393600, 3087472240, 134566395, 692, 0, 0, 0, 1, 135267902, 512, 1, 3215393524, 154529352, 69, 3215393652, 3215393496, 135197110, 154530076, 3215393524, 3215393528, 693, 154529384, 3086704259}}, sa_flags = 693, sa_restorer = 0x81062e9 <write_full+57>} sigs = {__val = {32, 0 <repeats 31 times>}} #3 0x080f0d35 in default_fatal_finish (type=<value optimized out>, status=0) at failures.c:160 backtrace = 0x935ea38 "imap [0x80f0d21] -> imap [0x80f0da2] -> imap [0x80f06d9] -> /usr/lib/dovecot/modules/imap/lib20_virtual_plugin.so [0xb7ec36b4] -> /usr/lib/dovecot/modules/imap/lib20_virtual_plugin.so [0xb7ec4c7b] -> "... #4 0x080f0da2 in i_internal_fatal_handler (type=LOG_TYPE_PANIC, status=0, fmt=0xb7ec6ab8 "file %s: line %d (%s): assertion failed: (%s)", args=0xbfa703d4 "ap¦¦\001") at failures.c:440 No locals. #5 0x080f06d9 in i_panic (format=0xb7ec6ab8 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:207 No locals. #6 0xb7ec36b4 in virtual_sync_mailbox_box_remove (ctx=0x9632340, bbox=0x9374248, removed_uids=0x937427c) at virtual-sync.c:516 i = 3215393848 src = 0 dest = 135275874 uid = 154526136 vseq = 28 __PRETTY_FUNCTION__ = "virtual_sync_mailbox_box_remove" #7 0xb7ec4c7b in virtual_sync_backend_boxes (ctx=0x9632340) at virtual-sync.c:850 _data_stack_cur_id = 3 i = 10 ret = 0 #8 0xb7ec5dc4 in virtual_storage_sync_init (box=0x9373ba8, flags=MAILBOX_SYNC_FLAG_EXPUNGE) at virtual-sync.c:1445 sync_ctx = <value optimized out> ret = <value optimized out> #9 0x0806fff4 in imap_sync_init (client=0x936b188, box=0x9373ba8, imap_flags=IMAP_SYNC_FLAG_SAFE, flags=MAILBOX_SYNC_FLAG_EXPUNGE) at imap-sync.c:146 ctx = (struct imap_sync_context *) 0x958ff78 __PRETTY_FUNCTION__ = "imap_sync_init" #10 0x0807031b in cmd_sync_delayed (client=0x936b188) at imap-sync.c:579 cmd = <value optimized out> first_expunge = <value optimized out> first_nonexpunge = <value optimized out> __PRETTY_FUNCTION__ = "cmd_sync_delayed" #11 0x080679ac in client_handle_input (client=0x936b188) at client.c:724 ret = false remove_io = false handled_commands = true __PRETTY_FUNCTION__ = "client_handle_input" #12 0x0806817f in client_input (client=0x936b188) at client.c:748 ---Type <return> to continue, or q <return> to quit--- cmd = <value optimized out> output = (struct ostream *) 0x936b33c bytes = <value optimized out> __PRETTY_FUNCTION__ = "client_input" #13 0x080f99d0 in io_loop_handler_run (ioloop=0x93669b0) at ioloop-epoll.c:208 ctx = (struct ioloop_handler_context *) 0x9366ab8 event = (const struct epoll_event *) 0x9366af8 list = (struct io_list *) 0x936b3c0 io = (struct io_file *) 0x936b398 tv = {tv_sec = 4, tv_usec = 187729} t_id = 2 msecs = <value optimized out> ret = 1 i = 0 j = 0 call = <value optimized out> #14 0x080f8e50 in io_loop_run (ioloop=0x93669b0) at ioloop.c:338 No locals. #15 0x08070b85 in main (argc=Cannot access memory at address 0x3617 ) at main.c:323 No locals.
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?
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
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.
On Mon, 2009-06-22 at 20:39 +0200, e-frog wrote:
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. .. #1 0xb7e9771c in virtual_sync_backend_boxes (ctx=0x935cca0) at virtual-sync.c:790
Thanks, fixed: http://hg.dovecot.org/dovecot-1.2/rev/86c32eb84dfa
Timo Sirainen wrote:
On Mon, 2009-06-22 at 20:39 +0200, e-frog wrote:
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. .. #1 0xb7e9771c in virtual_sync_backend_boxes (ctx=0x935cca0) at virtual-sync.c:790
Thanks, fixed: http://hg.dovecot.org/dovecot-1.2/rev/86c32eb84dfa
Thanks Timo!
Could this have been also the root cause for the crash earlier reported?
On Jun 28, 2009, at 7:11 AM, e-frog wrote:
Timo Sirainen wrote:
On Mon, 2009-06-22 at 20:39 +0200, e-frog wrote:
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. .. #1 0xb7e9771c in virtual_sync_backend_boxes (ctx=0x935cca0) at
virtual-sync.c:790Thanks, fixed: http://hg.dovecot.org/dovecot-1.2/rev/86c32eb84dfa
Thanks Timo!
Could this have been also the root cause for the crash earlier
reported?
No. It could only have caused infinite looping.
participants (2)
-
e-frog
-
Timo Sirainen