[Dovecot] Dovecot 1.1rc3 crashes with Dbox + imap_quota plugin
Version: Dovecot v1.1.rc3 OS: CentOS 5 running in OpenVZ CPU: x86_64
Was running fine with maildir and decided to get dbox a try. Test user created with a dbox mailstore backend and when a client logs in that tries to run a getquotaroot imap command the process SIGSEGV's.
Have been able to narrow it down to dbox crashing against dict quota as well as dirsize. Maildir works just fine.
example telnet session:
... 5 getquota *
5 NO Quota root doesn't exist.
6 getquotaroot inbox
Connection closed by foreign host.
Got the backtrace from a coredump as well:
Program terminated with signal 11, Segmentation fault.
#0 0x0000000000463d99 in mail_index_get_header_ext (view=0x0, ext_id=2, data_r=0x7fff8ad72140,
data_size_r=0x7fff8ad72138) at mail-index-view.c:550
550 view->v.get_header_ext(view, NULL, ext_id, data_r, data_size_r);
(gdb) bt full
#0 0x0000000000463d99 in mail_index_get_header_ext (view=0x0, ext_id=2, data_r=0x7fff8ad72140,
data_size_r=0x7fff8ad72138) at mail-index-view.c:550
No locals.
#1 0x000000000044604c in dbox_sync_want_flush_dirty (mbox=0x2aaaaaae5cc8, close_flush_dirty_flags=true)
at dbox-sync.c:262
    hdr = <value optimized out>
    data = <value optimized out>
    data_size = <value optimized out>
#2 0x0000000000446101 in dbox_sync_begin (mbox=0x0, ctx_r=0x7fff8ad72278, close_flush_dirty_flags=64, force=64)
at dbox-sync.c:297
    storage = (struct mail_storage *) 0x2aaaaaadb878
    ctx = <value optimized out>
    sync_flags = <value optimized out>
    ret = <value optimized out>
    rebuild = <value optimized out>
#3 0x00000000004468c8 in dbox_sync (mbox=0x0, close_flush_dirty_flags=64) at dbox-sync.c:396
    sync_ctx = (struct dbox_sync_context *) 0x2aaaaaae5cc8
#4 0x000000000043f0c4 in dbox_storage_mailbox_close (box=0x0) at dbox-storage.c:312
    mbox = <value optimized out>
    ret = <value optimized out>
#5 0x00002aaaab62df50 in fts_mailbox_close (box=0x2aaaaaae5cc8) at fts-storage.c:65
    fbox = (struct fts_mailbox *) 0x2aaaaaae8f90
    ret = <value optimized out>
#6 0x00002aaaab42a5ed in cmd_getquotaroot (cmd=0x2aaaaaadc338) at imap-quota-plugin.c:98
    storage = <value optimized out>
    box = (struct mailbox *) 0x0
    iter = (struct quota_root_iter *) 0x0
    root = <value optimized out>
    orig_mailbox = 0x2aaaaaae0518 "INBOX"
    mailbox = 0x49a6ca "INBOX"
    str = (string_t *) 0x2aaaaaacf1c0
#7 0x000000000041ab18 in client_command_input (cmd=0x0) at client.c:546
    client = (struct client *) 0x2aaaaaadbf50
    command = <value optimized out>
    __PRETTY_FUNCTION__ = "client_command_input"
#8 0x000000000041abb9 in client_command_input (cmd=0x2aaaaaadc338) at client.c:595
    client = (struct client *) 0x2aaaaaadbf50
    command = (struct command *) 0x7fff8ad72140
    __PRETTY_FUNCTION__ = "client_command_input"
#9 0x000000000041b32f in client_handle_input (client=0x2aaaaaadbf50) at client.c:636
    _data_stack_cur_id = 3
    ret = <value optimized out>
   remove_io = <value optimized out>
    handled_commands = false
#10 0x000000000041b54f in client_input (client=0x2aaaaaadbf50) at client.c:691
    cmd = <value optimized out>
    output = (struct ostream *) 0x2aaaaaadc1e8
    bytes = 27
    __PRETTY_FUNCTION__ = "client_input"
#11 0x0000000000486a38 in io_loop_handler_run (ioloop=<value optimized out>) at ioloop-epoll.c:201
    ctx = <value optimized out>
    event = (const struct epoll_event *) 0x2aaaaaad7dc0
    list = (struct io_list *) 0x2aaaaaad8780
    io = (struct io_file *) 0x2aaaaaadc280
    tv = {tv_sec = 1799, tv_usec = 999598}
    events_count = <value optimized out>
    t_id = 2
    msecs = <value optimized out>
    ret = 1
    i = 0
    call = <value optimized out>
#12 0x0000000000485d1d in io_loop_run (ioloop=0x2aaaaaad7b60) at ioloop.c:301
No locals.
#13 0x0000000000422871 in main (argc=<value optimized out>, argv=0x0, envp=0x7fff8ad72578) at main.c:293
No locals.
Let me know if there's any other info you need.
participants (1)
- 
                
                eric@flerd.com