[Dovecot] 1.2rc5 Panic: file virtual-sync.c

e-frog e-frog at gmx.de
Mon Jun 22 21:39:17 EEST 2009


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.



More information about the dovecot mailing list