Bug when virtual mailbox is set to auto=subscribe

Daniel Neugart DanielNeugart at gmx.de
Mon Jun 9 21:02:26 UTC 2014


Hi everybody,
I'd like to submit a bug:

My setup:
dovecot version: 2.2.13-1
Kernel: 3.14.5-1-ARCH on arch linux x64
Filesystem: ext4

Bug description:
If a virtual mailbox is defined with auto = subscribe dovecot crashes upon access via imap.

Configuration is as followed:
namespace inbox {
[...]
  mailbox virtual/Flagged {
    auto = subscribe
    special_use = \Flagged
  }
[...]

dovecot-virtual file:

# ~/Maildir/virtual/Flagged/dovecot-virtual
*
-Trash
-Trash/*
  flagged


'auto' must be set to 'no' for virtual mailboxes, otherwise dovecot crashes when the virtual folder is tried to be accessed via a imap (thunderbird in my case).

Crash log:
Jun 09 21:55:07 pluto dovecot[24881]: imap($MAILADRESS): Panic: file mail-index-sync.c: line 413 (mail_index_sync_begin_to2): assertion failed: (!index->syncing)
Jun 09 21:55:07 pluto dovecot[24881]: imap($MAILADRESS): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x68680) [0x7fa67a692680] -> /usr/lib/dovecot/libdovecot.so.0(+0x6876c) [0x7fa67a69276c] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7fa67a64c83d] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0xc3dfe) [0x7fa67a9c3dfe] -> /usr/lib/dovecot/libdovecot-storage.so.0(mail_index_sync_begin_to+0x3f) [0x7fa67a9c3eaf] -> /usr/lib/dovecot/libdovecot-storage.so.0(mail_index_sync_begin+0x1c) [0x7fa67a9c3f3c] -> /usr/lib/dovecot/modules/lib20_virtual_plugin.so(virtual_storage_sync_init+0xc3) [0x7fa679e71d23] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_sync_init+0x29) [0x7fa67a97cf29] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_sync+0x27) [0x7fa67a97d037] -> /usr/lib/dovecot/libdovecot-storage.so.0(index_storage_get_status+0x31) [0x7fa67a9a59e1] -> /usr/lib/dovecot/modules/lib20_virtual_plugin.so(+0x8c9d) [0x7fa679e70c9d] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_get_status+0x31) [0x7fa67a97e321] -> /usr/lib/dovecot/modules/lib20_virtual_plugin.so(virtual_storage_sync_init+0xf94) [0x7fa679e72bf4] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_sync_init+0x29) [0x7fa67a97cf29] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_sync+0x27) [0x7fa67a97d037] -> /usr/lib/dovecot/libdovecot-storage.so.0(index_storage_get_status+0x31) [0x7fa67a9a59e1] -> /usr/lib/dovecot/modules/lib20_virtual_plugin.so(+0x8c9d) [0x7fa679e70c9d] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_get_status+0x31) [0x7fa67a97e321] -> /usr/lib/dovecot/modules/lib20_virtual_plugin.so(virtual_storage_sync_init+0xf94) [0x7fa679e72bf4] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_sync_init+0x29) [0x7fa67a97cf29] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_sync+0x27) [0x7fa67a97d037] -> /usr/lib/dovecot/libdovecot-storage.so.0(index_storage_get_status+0x31) [0x7fa67a9a59e1] -> /usr/lib/dovecot/modules/lib20_virtual_plugin.so(+0x8c9d) [0x7fa679e70c9d] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_get_status+0x31) [0x7fa67a97e321] -> dovecot/imap(imap_status_get+0x67) [0x41d6f7] -> dovecot/imap(cmd_status+0x188) [0x4131c8] -> dovecot/imap(command_exec+0x3c) [0x4171ac] -> dovecot/imap() [0x416202]
Jun 09 21:55:07 pluto dovecot[24881]: imap($MAILADRESS): Fatal: master: service(imap): child 24926 killed with signal 6 (core dumped)


Below a complete dump of doveconf -n (with corrected 'auto' value for virtual mailboxes):
# 2.2.13: /etc/dovecot/dovecot.conf
# OS: Linux 3.14.5-1-ARCH x86_64  
mail_home = /home/vmail/%d/%n
mail_location = maildir:~/Maildir:LAYOUT=fs
mail_plugins = " virtual"
namespace {
  location = virtual:~/Maildir/virtual
  prefix = virtual/
  separator = /
}
namespace inbox {
  inbox = yes
  location = 
  mailbox Archive {
    auto = create
    special_use = \Archive
  }
  mailbox Drafts {
    auto = create
    special_use = \Drafts
  }
  mailbox Junk {
    auto = create
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = create
    special_use = \Trash
  }
  mailbox virtual/All {
    auto = no
    special_use = \All
  }
  mailbox virtual/Flagged {
    auto = no
    special_use = \Flagged
  }
  prefix = 
}
passdb {
  args = username_format=%n scheme=SHA512-CRYPT /etc/dovecot/%d/passwd
  driver = passwd-file
}
protocols = imap lmtp
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0660
    user = postfix
  }
  user = vmail
}
ssl_cert = </$PATH to my ssl cert
ssl_key = </$PATH to my ssl key
userdb {
  args = username_format=%n /etc/dovecot/%d/passwd
  default_fields = uid=vmail gid=vmail
  driver = passwd-file
}
protocol lmtp {
  postmaster_address = postmaster at mydomain.com
}



Best regards
Daniel


More information about the dovecot mailing list