[Dovecot] IMAP IDLE goes to sleep

Robert Schetterer robert at schetterer.org
Mon Jun 25 13:29:53 EEST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Julian Cowley schrieb:
> First of all, let me say that I'm really impressed with Dovecot.
> It is great.
> 
> Problem description
> ===================
> 
> Now I've got a possible bug I'd like to report.  I've been learning
> about the IMAP protocol recently, and have started playing with the
> IDLE command.  The problem is that Dovecot doesn't always notify the
> client when there is new mail available.  While notifications work
> for the most part, it seems that Dovecot occasionally gets itself
> into a rut where it fails to notice any changes to the mailbox (new
> messages, flag changes, etc.).  The problem usually becomes apparent
> when there is more than one email client accessing the same mailbox.
> In fact, this may be a requirement -- I only tested it once, but I
> couldn't reproduce the problem when I had only one connection open
> to the mailbox (which is in maildir format in my case).
> 
> An example is included below.  Any feedback on how to debug this
> problem further would be appreciated.
> 
> An aside
> ========
> 
> After I found out about the IDLE command, I looked for implementations.
> I ran across this plug-in for Apple Mail (one of my favorite mail
> clients):
> 
> http://www.rothwell.us/imapidle/index.html
> 
> The web page notes that Leopard's Apple Mail may support the IDLE
> command natively, which is good news if true.  It would be really
> cool if Dovecot's IDLE command can be made robust enough to make this
> feature really come alive.
> 
> Example
> =======
> 
> This transcript is copied from an SSL connection directly to dovecot
> using openssl s_client.  At the same time a separate client (Horde/IMP)
> has the same mailbox open:
> 
> A0017 IDLE
> + idling
> * 7927 FETCH (FLAGS (\Seen \Recent))
> * 7927 FETCH (FLAGS (\Deleted \Seen \Recent))
> * OK Still here
> * OK Still here
> * OK Still here
> * OK Still here
> * 7940 EXISTS
> * 22 RECENT
> * OK Still here
> * OK Still here
> * OK Still here
> * OK Still here
> * OK Still here
> * OK Still here
> * OK Still here
> * OK Still here
> * OK Still here
> * OK Still here
> * 7941 EXISTS
> 
> [At some point after this, something happens (or doesn't happen) and
> dovecot no longer notifies of new messages.  The other client is still
> reading messages in the same mailbox and new mail is still arriving.]
> 
> * OK Still here
> * OK Still here
> * OK Still here
> * OK Still here
> * OK Still here
> 
> [The above message repeated another 30 times here.  Finally, IDLE
> mode is terminated:]
> 
> * OK Still here
> DONE
> * 7941 EXPUNGE
> A0017 OK Idle completed.
> 
> [Now a NOOP is issued to gather any more untagged responses, and
> there's a deluge of responses, presumably all the stuff that happened
> while dovecot was asleep.  Notice that the highest message is 7967
> whereas the last one heard about was 7941.]
> 
> A0018 NOOP
> * 7913 FETCH (FLAGS (\Deleted \Recent))
> * 7914 FETCH (FLAGS (\Deleted))
> * 7915 FETCH (FLAGS (\Deleted))
> * 7916 FETCH (FLAGS (\Deleted))
> * 7917 FETCH (FLAGS (\Deleted))
> * 7918 FETCH (FLAGS (\Deleted))
> * 7919 FETCH (FLAGS (\Deleted \Recent))
> * 7920 FETCH (FLAGS (\Deleted \Recent))
> * 7921 FETCH (FLAGS (\Deleted \Recent))
> * 7922 FETCH (FLAGS (\Deleted \Seen))
> * 7923 FETCH (FLAGS (\Deleted \Seen))
> * 7925 FETCH (FLAGS (\Deleted \Seen))
> * 7928 FETCH (FLAGS (\Deleted \Recent))
> * 7967 EXISTS
> * 30 RECENT
> A0018 OK NOOP completed.
> 
> Configuration
> =============
> 
> Here are the specifications of the dovecot used in the above test:
> 
> version         dovecot 1.0.1
> os              linux
> distro          centos 4.5
> fs              ext3
> arch            x86_64
> kernel          2.6.9-55.ELsmp
> configure       --without inotify --with pam_stack --with forcequota2
> cc              gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-8)
> 
> In addition, I'm using the deliver LDA as the Postfix mailbox_command,
> and am using the dovecot-sieve plugin (which is used to set customized
> IMAP keywords).
> 
> dovecot -n:
> 
> # 1.0.1: /etc/dovecot.conf
> ssl_cert_file: /usr/lib/courier-imap/share/imapd.pem
> ssl_key_file: /usr/lib/courier-imap/share/imapd.pem
> login_dir: /var/run/dovecot/login
> login_executable(default): /usr/libexec/dovecot/imap-login
> login_executable(imap): /usr/libexec/dovecot/imap-login
> login_executable(pop3): /usr/libexec/dovecot/pop3-login
> first_valid_uid: 100
> mail_location: maildir:~/Maildir
> maildir_copy_with_hardlinks: yes
> mail_executable(default): /usr/libexec/dovecot/imap
> mail_executable(imap): /usr/libexec/dovecot/imap
> mail_executable(pop3): /usr/libexec/dovecot/pop3
> mail_plugin_dir(default): /usr/lib64/dovecot/imap
> mail_plugin_dir(imap): /usr/lib64/dovecot/imap
> mail_plugin_dir(pop3): /usr/lib64/dovecot/pop3
> namespace:
>   type: private
>   separator: /
>   inbox: yes
> auth default:
>   default_realm: lava.net
>   verbose: yes
>   passdb:
>     driver: sql
>     args: /etc/dovecot-sql.conf
>   userdb:
>     driver: sql
>     args: /etc/dovecot-sql.conf
> 
> ps. Good thing there's no POP IDLE command!
> 
Hi Julian,
i might fail ,but it looks like
that there are problems on the clients side with idle
http://wiki.dovecot.org/Clients
and depending to that , there are workarounds
however i wouldnt recommand apple mail with imap
anyway ,cause it is know for a long history of bugs with imap
courier, cyrus , dovecot
( i dont know if apple has fixed them over the time, but i had a really
bad time with some of my apple mail users in the past )

- --
Mit freundlichen Gruessen
Best Regards

Robert Schetterer

https://www.schetterer.org
Germany
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org

iD8DBQFGf5khfGH2AvR16oERAnkrAJ0cp7x2qhuOl+Eo7kotgUslXOeojQCePZhb
ixro5SzMaAD62GbLfrfG/3g=
=Hw/R
-----END PGP SIGNATURE-----



More information about the dovecot mailing list