Guilhem Moulin
2015-Jul-19 17:21 UTC
"NOTIFY SET (mailboxes INBOX (...))" crashes the IMAP client
Hi list, The NOTIFY extension (RFC 5465) works fine for mailboxes in the "virtual/" namespace, but it crashes the IMAP client when used with a mailbox in the empty "" namespace: ~$ /usr/lib/dovecot/imap * PREAUTH [CAPABILITY IMAP4rev1 ? NOTIFY SPECIAL-USE] Logged in as guilhem a NAMESPACE * NAMESPACE (("" "/")("virtual/" "/")) NIL NIL a OK Namespace completed. b NOTIFY SET (mailboxes virtual/all (MessageNew MessageExpunge)) b OK NOTIFY completed (0.001 secs). c NOTIFY SET (mailboxes INBOX (MessageNew MessageExpunge)) imap(guilhem): Panic: file mail-namespace.c: line 679 (mail_namespace_find): assertion failed: (ns != NULL) imap(guilhem): Error: Raw backtrace: ? Aborted The "subtree" mailbox filter has the same problem, but the non-parameterized ones ("inboxes", "personal" and "subscribed") work fine. You'll find the output of ?dovecot -n? enclosed. Cheers, -- Guilhem. -------------- next part -------------- # 2.2.18: /etc/dovecot/dovecot.conf # OS: Linux 4.0.0-2-686-pae i686 Debian stretch/sid listen = 127.0.0.1, ::1 mail_location = maildir:~/mail mail_plugins = virtual mailbox_list_index = yes namespace inbox { inbox = yes location = mailbox DRAFTS { auto = create special_use = \Drafts } mailbox SENT { auto = subscribe special_use = \Sent } mailbox SPAM { auto = create special_use = \Junk } mailbox TRASH { auto = create special_use = \Trash } mailbox virtual/all { special_use = \All } mailbox virtual/flagged { special_use = \Flagged } prefix = separator = / } namespace virtual { hidden = no list = no location = virtual:~/mail/virtual prefix = virtual/ separator = / } passdb { driver = pam } plugin { sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocols = " imap" service imap-login { inet_listener imap { port = 0 } inet_listener imaps { port = 0 } } ssl = no userdb { driver = passwd } -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://dovecot.org/pipermail/dovecot/attachments/20150719/75e0535a/attachment.sig>
Guilhem Moulin
2015-Jul-26 16:00 UTC
"NOTIFY SET (mailboxes INBOX (...))" crashes the IMAP client
On Sun, 19 Jul 2015 at 19:21:16 +0200, Guilhem Moulin wrote:> The "subtree" mailbox filter has the same problem, but the > non-parameterized ones ("inboxes", "personal" and "subscribed") work > fine.Actually there are further problem with the INBOX namespace, to which I'm subscribed: $ /usr/lib/dovecot/imap S1: * PREAUTH [CAPABILITY IMAP4rev1 ? MOVE NOTIFY SPECIAL-USE] Logged in as guilhem C1: a1 LIST "" (INBOX TRASH) RETURN (SUBSCRIBED) S1 * LIST (\Subscribed \UnMarked) "/" TRASH S1 * LIST (\Subscribed) "/" INBOX S1: a1 OK List completed (0.003 secs). C1: b1 NOTIFY SET (SUBSCRIBED (MessageNew MessageExpunge FlagChange)) S1: b1 OK NOTIFY completed (0.002 secs). $ /usr/lib/dovecot/imap S2: * PREAUTH [CAPABILITY IMAP4rev1 ? MOVE NOTIFY SPECIAL-USE] Logged in as guilhem C2: a2 APPEND INBOX {1+} C2: x S2: a2 OK [APPENDUID 1384472528 26087] Append completed (0.008 secs). This crashes S1 as well: S1: imap(guilhem): Panic: file mail-storage.c: line 1511 (mailbox_is_subscribed): assertion failed: (box->list->subscriptions != NULL) S1: imap(guilhem): Error: Raw backtrace: [?] S1: Aborted This might be related to [0] as it is INBOX-specific as well: APPENDing a message to TRASH (to which I'm also subscribed) triggers the MessageNew notification as expected. S1: * STATUS TRASH (MESSAGES 3407 UIDNEXT 113820 UNSEEN 1) -- Guilhem. [0] http://dovecot.org/pipermail/dovecot/2015-July/101514.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://dovecot.org/pipermail/dovecot/attachments/20150726/51854452/attachment-0001.sig>
Timo Sirainen
2015-Sep-07 19:52 UTC
"NOTIFY SET (mailboxes INBOX (...))" crashes the IMAP client
On 07/19/2015 08:21 PM, Guilhem Moulin wrote:> Hi list, > > The NOTIFY extension (RFC 5465) works fine for mailboxes in the "virtual/" > namespace, but it crashes the IMAP client when used with a mailbox in > the empty "" namespace:Fixed: http://hg.dovecot.org/dovecot-2.2/rev/fae5feef70af> ~$ /usr/lib/dovecot/imap > * PREAUTH [CAPABILITY IMAP4rev1 ? NOTIFY SPECIAL-USE] Logged in as guilhem > a NAMESPACE > * NAMESPACE (("" "/")("virtual/" "/")) NIL NIL > a OK Namespace completed. > b NOTIFY SET (mailboxes virtual/all (MessageNew MessageExpunge)) > b OK NOTIFY completed (0.001 secs). > c NOTIFY SET (mailboxes INBOX (MessageNew MessageExpunge)) > imap(guilhem): Panic: file mail-namespace.c: line 679 (mail_namespace_find): assertion failed: (ns != NULL) > imap(guilhem): Error: Raw backtrace: ? > Aborted > > The "subtree" mailbox filter has the same problem, but the > non-parameterized ones ("inboxes", "personal" and "subscribed") work > fine. > > You'll find the output of ?dovecot -n? enclosed. > Cheers, >
Timo Sirainen
2015-Sep-07 20:09 UTC
"NOTIFY SET (mailboxes INBOX (...))" crashes the IMAP client
On 07/26/2015 07:00 PM, Guilhem Moulin wrote:> On Sun, 19 Jul 2015 at 19:21:16 +0200, Guilhem Moulin wrote: >> The "subtree" mailbox filter has the same problem, but the >> non-parameterized ones ("inboxes", "personal" and "subscribed") work >> fine. > > Actually there are further problem with the INBOX namespace, to which I'm > subscribed: > > $ /usr/lib/dovecot/imap > S1: * PREAUTH [CAPABILITY IMAP4rev1 ? MOVE NOTIFY SPECIAL-USE] Logged in as guilhem > C1: a1 LIST "" (INBOX TRASH) RETURN (SUBSCRIBED) > S1 * LIST (\Subscribed \UnMarked) "/" TRASH > S1 * LIST (\Subscribed) "/" INBOX > S1: a1 OK List completed (0.003 secs). > C1: b1 NOTIFY SET (SUBSCRIBED (MessageNew MessageExpunge FlagChange)) > S1: b1 OK NOTIFY completed (0.002 secs). > > $ /usr/lib/dovecot/imap > S2: * PREAUTH [CAPABILITY IMAP4rev1 ? MOVE NOTIFY SPECIAL-USE] Logged in as guilhem > C2: a2 APPEND INBOX {1+} > C2: x > S2: a2 OK [APPENDUID 1384472528 26087] Append completed (0.008 secs). > > This crashes S1 as well: > > S1: imap(guilhem): Panic: file mail-storage.c: line 1511 (mailbox_is_subscribed): assertion failed: (box->list->subscriptions != NULL)Fixed: http://hg.dovecot.org/dovecot-2.2/rev/73acc7075146
Reasonably Related Threads
- "NOTIFY SET (mailboxes INBOX (...))" crashes the IMAP client
- NOTIFY regression: 2.18 no longer notifies of events in INBOX
- RFC 5465 (NOTIFY) violation: missing HIGHESTMODSEQ in initial STATUS responses
- Race condition in IMAP NOTIFY for events received NOTIFY_DELAY_MSECS apart
- NOTIFY broken in 2.2.31?