Sylvain
2014-Jan-07 17:32 UTC
[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
Sylvain
2014-Jan-29 07:31 UTC
[Dovecot] Assertion failed with imapc after upgrading Dovecot from 2.1.7 to 2.2.9
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 at 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 >