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?