[Dovecot] Assertion failed with imapc after upgrading Dovecot from 2.1.7 to 2.2.9

Sylvain debian.roxx at gmail.com
Tue Jan 7 19:32:55 EET 2014


Hi !

I have an old Courier IMAP and in front of it, I have put a proxy cache
with Dovecot/imapc.

I use Debian Wheezy (stable) which package Dovecot in version 2.1.7.
I have tested the upgrade to Debian Jessie (testing) which package Dovecot
in version 2.2.9 but an assertion is thrown :

dovecot: imap(xxx): Panic: file imapc-list.c: line 499
(imapc_list_delete_unused_indexes): assertion failed: (strncmp(vname,
fs_list->ns->prefix, fs_list->ns->prefix_len) == 0)

I have checked source code and have seen that if *imapc_list_prefix* is not
set, assertion will not be "walked". It's works but special inbox aren't
detected correctly in email clients.
If I understand the meaning of *vname* variable, it is because our Courier
IMAP send us "INBOX" which is the value of my *imapc_list_prefix* and thus,
assertion is thrown.

Here some details of my tests :

Courier IMAP :

* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP
ready. Copyright 1998-2005 Double Precision, Inc.  See COPYING for
distribution information.
a login xxx xxx
a OK LOGIN Ok.
a list "" "*"
* LIST (\HasNoChildren) "." "INBOX.Drafts"
* LIST (\HasNoChildren) "." "INBOX.Trash"
* LIST (\HasNoChildren) "." "INBOX.test"
* LIST (\HasNoChildren) "." "INBOX.Sent"
* LIST (\HasNoChildren) "." "INBOX.Junk"
* LIST (\Unmarked \HasChildren) "." "INBOX"
a OK LIST completed

Dovecot version 2.1.7 :

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
a login xxx xxx
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT
CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC
ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE]
Logged in
a list "" "*"
* LIST (\HasChildren) "." "INBOX"
* LIST (\HasNoChildren \Drafts) "." "INBOX.Drafts"
* LIST (\HasNoChildren \Trash) "." "INBOX.Trash"
* LIST (\HasNoChildren) "." "INBOX.test"
* LIST (\HasNoChildren \Sent) "." "INBOX.Sent"
* LIST (\HasNoChildren \Junk) "." "INBOX.Junk"
a OK List completed.

Dovecot version 2.2.9 :

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
a login xxx xxx
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT
MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS
LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN
CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE] Logged in
a list "" "*"
Connection closed by foreign host.

And the dovecot configuration relative to the inbox :

imapc_list_prefix = INBOX
namespace inbox {
  inbox = yes
  separator = .
  prefix = INBOX.
}

Any help will be welcome :)

Sylvain


More information about the dovecot mailing list