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@mydomain.com
}
Best regards Daniel