Guilhem Moulin
2015-Jul-26 15:50 UTC
NOTIFY regression: 2.18 no longer notifies of events in INBOX
Here is an example with APPEND $ /usr/lib/dovecot/imap S1: * PREAUTH [CAPABILITY IMAP4rev1 ? MOVE NOTIFY SPECIAL-USE] Logged in as guilhem C1: a1 NOTIFY SET (INBOXES (MessageNew MessageExpunge FlagChange)) S1: a1 OK NOTIFY completed (0.000 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 26085] Append completed (0.229 secs). With 2.13 from Debian Jessie, S1 sends a notification for the new message in INBOX, as expected: S1: * STATUS INBOX (MESSAGES 4333 UIDNEXT 26086 UNSEEN 1) However it doesn't with 2.18 from Debian Sid, as if ?INBOX? was excluded from the mailbox filter ?INBOXES?. It does send a notification for ?virtual/unseen? instead (as expected), but nothing for ?INBOX?. S1: * STATUS virtual/unseen (MESSAGES 3 UIDNEXT 15186 UNSEEN 3) This is INBOX-specific because APPENDING the message to another mailbox triggers the notification on both 2.13 and 2.18 as expected: S1: * STATUS test (MESSAGES 2 UIDNEXT 3 UNSEEN 2) S1: * STATUS virtual/unseen (MESSAGES 2 UIDNEXT 15195 UNSEEN 2) I attach the ?dovecot -n? output for both 2.13 and 2.18. -- Guilhem. -------------- next part -------------- # 2.2.13: /etc/dovecot/dovecot.conf # OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.1 log_timestamp = "%Y-%m-%d %H:%M:%S " mail_location = mdbox:%h/mail 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 = / } passdb { args = scheme=SHA512-CRYPT username_format=%Ln /etc/dovecot/users driver = passwd-file } plugin { sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocols = " imap lmtp" service auth-worker { user = $default_internal_user } service auth { unix_listener /var/spool/postfix/private/dovecot-auth { group = postfix mode = 0600 user = postfix } user = $default_internal_user } service imap-login { inet_listener imap { address = 127.0.0.1, ::1 port = 143 } inet_listener imaps { port = 993 ssl = yes } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } } ssl = required ssl_ca = </usr/local/share/ca-certificates/cacert.org/class3.crt ssl_cert = </etc/dovecot/ssl/imap.guilhem.org.pem ssl_cipher_list = HIGH:!SSLv2:!aNULL:!eNULL:!3DES:!MD5:@STRENGTH ssl_dh_parameters_length = 2048 ssl_key = </etc/dovecot/ssl/private/imap.guilhem.org.key ssl_protocols = !SSLv2 !SSLv3 ssl_verify_client_cert = yes userdb { args = username_format=%Ln /etc/dovecot/users driver = passwd-file } protocol lmtp { mail_plugins = " sieve" postmaster_address = postmaster at guilhem.org } -------------- 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/20150726/8abe992c/attachment.sig>
Timo Sirainen
2015-Sep-07 21:10 UTC
NOTIFY regression: 2.18 no longer notifies of events in INBOX
Fixed: http://hg.dovecot.org/dovecot-2.2/rev/fa979ccfa34c http://hg.dovecot.org/dovecot-2.2/rev/f600285c3df2 On 07/26/2015 06:50 PM, Guilhem Moulin wrote:> Here is an example with APPEND > > $ /usr/lib/dovecot/imap > S1: * PREAUTH [CAPABILITY IMAP4rev1 ? MOVE NOTIFY SPECIAL-USE] Logged in as guilhem > C1: a1 NOTIFY SET (INBOXES (MessageNew MessageExpunge FlagChange)) > S1: a1 OK NOTIFY completed (0.000 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 26085] Append completed (0.229 secs). > > With 2.13 from Debian Jessie, S1 sends a notification for the new > message in INBOX, as expected: > > S1: * STATUS INBOX (MESSAGES 4333 UIDNEXT 26086 UNSEEN 1) > > However it doesn't with 2.18 from Debian Sid, as if ?INBOX? was excluded > from the mailbox filter ?INBOXES?. It does send a notification for > ?virtual/unseen? instead (as expected), but nothing for ?INBOX?. > > S1: * STATUS virtual/unseen (MESSAGES 3 UIDNEXT 15186 UNSEEN 3) > > This is INBOX-specific because APPENDING the message to another mailbox > triggers the notification on both 2.13 and 2.18 as expected: > > S1: * STATUS test (MESSAGES 2 UIDNEXT 3 UNSEEN 2) > S1: * STATUS virtual/unseen (MESSAGES 2 UIDNEXT 15195 UNSEEN 2) > > I attach the ?dovecot -n? output for both 2.13 and 2.18. >
Apparently Analagous Threads
- "NOTIFY SET (mailboxes INBOX (...))" crashes the IMAP client
- RFC 5465 (NOTIFY) violation: missing HIGHESTMODSEQ in initial STATUS responses
- "NOTIFY SET (mailboxes INBOX (...))" crashes the IMAP client
- 2.2.18 Regression: Incorrect STATUS response for virtual mailboxes
- Race condition in IMAP NOTIFY for events received NOTIFY_DELAY_MSECS apart