[Dovecot] Assertion failed with imapc after upgrading Dovecot from 2.1.7 to 2.2.9
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
Hi !
I would like to jump to version 2.2.9 instead of 2.1.7 to avoid maybe hundred of segfault by day but my problem with the assertion is always here. Anyone has an idea to resolve it ?
Sylvain
2014-01-07 Sylvain <debian.roxx@gmail.com>
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
participants (1)
-
Sylvain