-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Fri, 21 Nov 2008, Timo Sirainen wrote:
Could you enable rawlog and see what Dovecot sends to Thunderbird when this problem happens?
Well, hunting something totally different I'm hit with this very problem on a test server. Attached you'll find the rawlogs of a session performing a type 1) case (see below).
The INBOX is completely empty, Thunderbird (aka Icedove 1.5.0.13+1.5.0.15b.dfsg1+prepatch080614d-0etch1 from Debian Etch) has selected Trash.
Then I perform (cross-device, "file" is unique through all cases):
- chown user file && mv file ~user/Maildir/new
"mv" tells me that it could not preserve the permissions etc. hence the file was seen (and moved to cur) before mv was finished.
- chown user file && mv file ~user/Maildir/tmp/file && mv ~user/Maildir/tmp/file ~user/Maildir/new/file
(no error)
As 2) but last mv replaced by: ln tmp/file new/file && rm tmp/file
As 3) but use cur subdir as target
In the end, the mails have no stats in the overview window (no subject, date, sender, ...), but I can pull the body successfully. Changes of "new" vs. "read" and the "flag" are preserved. Once the message is read, the message size is up to date. Thunderbird itself does not reload the message info (or invalidates local cache), neither with Get Mail nor Compact Mailbox. My Tbird version does not have no "rebuilt index" option in the properties tabs or context menu.
However, this happens on the production server with Dovecot deliver as LDA.
I guess it's possible that this is the one v1.0 bug that I didn't bother fixing because I thought it was a too invasive change. It didn't have anything to do with moving messages though, simply that there's a small race condition where imap may see a new message as non-existing for a (really) short time after deliver has delivered it.
For me personally I can live with this problem, as it seems that I'm the only victim of it here.
(I'm looking forward to v1.2's shared users mailboxes anyway.)
=== Below are the server confs:
./sbin/dovecot --build-options Build options: ioloop=epoll notify=inotify ipv6 openssl SQL drivers: postgresql Passdb: checkpassword ldap pam passwd passwd-file shadow sql Userdb: checkpassword ldap passwd prefetch passwd-file sql static
====
# 1.0.15: /usr/local/dovecot-1.0.15patch4mgtsv92epoll/etc/dovecot.conf base_dir: /var/run/dovecot/ log_path: /var/log/dovecot/dovecot.log log_timestamp: %F %H:%M:%S protocols: imap imaps pop3 pop3s managesieve listen(default): * listen(imap): * listen(pop3): * listen(managesieve): *:2000 ssl_ca_file: /etc/ssl/certs/ca.crt ssl_cert_file(default): /etc/ssl/certs/imap.pem ssl_cert_file(imap): /etc/ssl/certs/imap.pem ssl_cert_file(pop3): /etc/ssl/certs/pop3.pem ssl_cert_file(managesieve): /etc/ssl/certs/imap.pem ssl_key_file(default): /etc/ssl/private/imap.key ssl_key_file(imap): /etc/ssl/private/imap.key ssl_key_file(pop3): /etc/ssl/private/pop3.key ssl_key_file(managesieve): /etc/ssl/private/imap.key disable_plaintext_auth: no verbose_ssl: yes login_dir(default): /var/run/dovecot//login login_dir(imap): /var/run/dovecot//login login_dir(pop3): /var/run/dovecot//login login_dir(managesieve): /var/run/dovecot/login login_executable(default): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/libexec/dovecot/imap-login login_executable(imap): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/libexec/dovecot/imap-login login_executable(pop3): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/libexec/dovecot/pop3-login login_executable(managesieve): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/libexec/dovecot/managesieve-login login_log_format_elements: %p: user=<%u> method=%m rip=%r lip=%l %c login_processes_count: 10 login_max_processes_count: 256 verbose_proctitle: yes first_valid_uid: 10 mail_location(default): maildir:%h/Maildir:CONTROL=/var/cache/dovecot/%i/control:INDEX=/var/cache/dovecot/%i/index mail_location(imap): maildir:%h/Maildir:CONTROL=/var/cache/dovecot/%i/control:INDEX=/var/cache/dovecot/%i/index mail_location(pop3): maildir:%h/Maildir:CONTROL=/var/cache/dovecot/%i/control:INDEX=/var/cache/dovecot/%i/index mail_location(managesieve): maildir:%h/Maildir mail_debug: yes dotlock_use_excl: yes maildir_copy_with_hardlinks: yes maildir_copy_preserve_filename: yes umask: 7 mail_executable(default): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/libexec/dovecot/rawlog /usr/local/dovecot-1.0.15patch4mgtsv92epoll/libexec/dovecot/imap mail_executable(imap): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/libexec/dovecot/rawlog /usr/local/dovecot-1.0.15patch4mgtsv92epoll/libexec/dovecot/imap mail_executable(pop3): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/libexec/dovecot/pop3 mail_executable(managesieve): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/libexec/dovecot/managesieve mail_plugins(default): quota imap_quota mail_log antispam mail_plugins(imap): quota imap_quota mail_log antispam mail_plugins(pop3): quota mail_log mail_plugins(managesieve): mail_plugin_dir(default): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/lib/dovecot/imap mail_plugin_dir(imap): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/lib/dovecot/imap mail_plugin_dir(pop3): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/lib/dovecot/pop3 mail_plugin_dir(managesieve): /usr/local/dovecot-1.0.15patch4mgtsv92epoll/lib/dovecot/managesieve mail_log_prefix: %Us(%u) [%p]: mail_log_max_lines_per_sec: 0 pop3_uidl_format(default): pop3_uidl_format(imap): pop3_uidl_format(pop3): %08Xu%08Xv pop3_uidl_format(managesieve): pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): oe-ns-eoh pop3_client_workarounds(managesieve): namespace: type: private separator: . inbox: yes auth default: mechanisms: plain login cache_size: 10 username_chars: [snip] verbose: yes debug: yes passdb: driver: passwd-file args: /etc/user.deny deny: yes passdb: driver: ldap args: /usr/local/dovecot-1.0.15patch4mgtsv92epoll/etc/dovecot-ldap.conf userdb: driver: ldap args: /usr/local/dovecot-1.0.15patch4mgtsv92epoll/etc/dovecot-ldap.conf userdb: driver: passwd socket: type: listen master: path: /var/run/dovecot/auth-master mode: 432 group: mail plugin: quota: fs antispam_trash: [snip] antispam_spam: [snip] antispam_mail_sendmail: /bin/false antispam_mail_sendmail_args: %u antispam_mail_tmpdir: /tmp/spamspool antispam_allow_append_to_spam: yes
Bye,
Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFJSQxGVJMDrex4hCIRApdJAKCZMB6djYr/KFJ3BQEw248th4fFnwCguuFi p38CRb0OD+aIdvjy+zmq3o0= =/i67 -----END PGP SIGNATURE-----