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