Dovecot/K9/Thunderbird IMAP interaction issues: replicated messages, constant reloading (TB) & missing new messages (K-9)
David Gessel
gessel at blackrosetech.com
Tue Jul 15 21:21:14 UTC 2014
-------- Original Message --------
Subject: Re: Dovecot/K9/Thunderbird IMAP interaction issues: replicated
messages, constant reloading (TB) & missing new messages (K-9)
From: David Gessel <gessel at blackrosetech.com>
To: Alex JOST <jost+lists at dimejo.at>, dovecot at dovecot.org
Date: Tue Jul 15 2014 15:08:31 GMT+0300 (Arabic Standard Time)
> -------- Original Message --------
> Subject: Re: Dovecot/K9/Thunderbird IMAP interaction issues: replicated
> messages, constant reloading (TB) & missing new messages (K-9)
> From: Alex JOST <jost+lists at dimejo.at>
> To: dovecot at dovecot.org
> Date: Tue Jul 15 2014 13:30:31 GMT+0300 (Arabic Standard Time)
>
>> Am 15.07.2014 03:12, schrieb David Gessel:
>>> * In thunderbird, I get constant downloading of messages. Every time I
>>> switch to the inbox from another folder, the messages start
>>> redownloading. This sometimes, but not always, seems to create
>>> duplicate messages, but I'm now fairly sure they are only created in the
>>> client and not on the server. Searching through various forums, it
>>> appears this has been a problem for Thunderbird for some time, but it
>>> wasn't for me on Courier. As posts about similar errors seem to have
>>> petered out over the last year without any clear guidance on how to fix
>>> it that I could find, I expect there's a simple fix I just haven't found
>>> yet, either in TB configuration or in Dovecot. Any hints? I tried
>>> Thunderfix to remove the .msf files and will be redownloading my mail
>>> over the thin pipe out to Iraq for the next 6 months (DOH!). One
>>> artifact is that when I restart thunderbird, my inbox is reported as
>>> having about 130 messages in it, then thunderbird starts redownloading
>>> headers and eventually gets back up to the 1297 currently listed both in
>>> the TB pane and by ls | wc -l in /cur. Is it possible there is a time
>>> out that needs to be extended? In TB, I've set (among other less
>>> apparently relevant options)
>>> mailnews.tcptimeout;1000
>>> mail.db.idle_limit;30000000
>>
>> How old is your Thunderbird profile. Have you tried creating a new one
>> and see if the problem persists?
>
> It is a new profile created with the transition from Cyrus to Dovecot
> about a week ago, but I used IMAPSync to move all my mail from the
> ancient Cyrus server to the shiny new Dovecot server. I then deleted
> the old profile.
>
>>
>> Thunderfix should not be needed by the way. Just right click on the
>> folder => Properties => Repair
>
> I did see that, but first thought there was something magic about
> "thunderfix" then decided to use it anyway because I have annual
> sent/recieved archives from 2000 (and one for pre-2000) so that would
> have been a lotta right-clicking.
>
>>
>>
>>> server # dovecot -n
>>> # 2.2.13: /usr/local/etc/dovecot/dovecot.conf
>>> # OS: FreeBSD 9.2-RELEASE amd64
>>> auth_default_realm = mydomain.com
>>> auth_mechanisms = plain login
>>> auth_realms = mydomain.com mydomain2.org
>>> disable_plaintext_auth = no
>>> first_valid_gid = 5000
>>> first_valid_uid = 5000
>>> hostname = mydomain.com
>>> imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags
>>> imap_idle_notify_interval = 29 mins
>>> last_valid_gid = 5000
>>> last_valid_uid = 5000
>>> lda_mailbox_autocreate = yes
>>> listen = *
>>> mail_gid = 5000
>>> mail_location = maildir:~/:CONTROL=/var/no-quota/%u
>>> mail_plugins = quota mail_log notify
>>> mail_temp_dir = /var/tmp
>>> mail_uid = 5000
>>> maildir_broken_filename_sizes = yes
>>> managesieve_notify_capability = mailto
>>> managesieve_sieve_capability = fileinto reject envelope
>>> encoded-character vacation subaddress comparator-i;ascii-numeric
>>> relational regex imap4flags copy include variables body enotify
>>> environment mailbox date ihave duplicate spamtest spamtestplus editheader
>>> mbox_lazy_writes = no
>>> namespace inbox {
>>> inbox = yes
>>> location =
>>> mailbox Drafts {
>>> special_use = \Drafts
>>> }
>>> mailbox Junk {
>>> special_use = \Junk
>>> }
>>> mailbox Sent {
>>> special_use = \Sent
>>> }
>>> mailbox "Sent Messages" {
>>> special_use = \Sent
>>> }
>>> mailbox Trash {
>>> special_use = \Trash
>>> }
>>> prefix =
>>> }
>>> passdb {
>>> args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
>>> driver = sql
>>> }
>>> plugin {
>>> expire = Trash
>>> mail_log_events = delete undelete expunge copy mailbox_delete
>>> mailbox_rename
>>> mail_log_fields = uid box msgid size
>>> quota = maildir:User quota
>>> quota_exceeded_message = Storage quota for this account has been
>>> exceeded, please try again later.
>>> quota_rule = *:storage=50G
>>> quota_rule2 = Trash:storage=+30%%
>>> quota_rule3 = Sent:storage=+30%%
>>> quota_warning = storage=90%% quota-warning 90 %u
>>> quota_warning2 = storage=75%% quota-warning 75 %u
>>> sieve = ~/.dovecot.sieve
>>> sieve_before = /usr/local/etc/dovecot/sieve/
>>> sieve_dir = ~/sieve
>>> sieve_extensions = +spamtest +spamtestplus +relational
>>> +comparator-i;ascii-numeric +editheader
>>> }
>>> postmaster_address = gessel at mydomain.com
>>> protocols = imap lmtp sieve sieve
>>> sendmail_path = /usr/local/sbin/sendmail
>>> service auth {
>>> unix_listener /var/spool/postfix/private/auth {
>>> group = postfix
>>> mode = 0666
>>> user = postfix
>>> }
>>> unix_listener auth-userdb {
>>> group = vmail
>>> mode = 0600
>>> user = vmail
>>> }
>>> }
>>> service managesieve-login {
>>> inet_listener sieve {
>>> port = 4190
>>> }
>>> service_count = 1
>>> vsz_limit = 128 M
>>> }
>>> service quota-warning {
>>> executable = script /usr/local/bin/quota-warning.sh
>>> unix_listener quota-warning {
>>> user = vmail
>>> }
>>> user = vmail
>>> }
>>> ssl = required
>>> ssl_cert = </usr/local/etc/ca/server-cert.pem
>>> ssl_cipher_list =
>>> ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:!SSLv2
>>>
>>> ssl_key = </usr/local/etc/ca/server-unencrypted-key.pem
>>> ssl_prefer_server_ciphers = yes
>>> userdb {
>>> driver = prefetch
>>> }
>>> userdb {
>>> args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
>>> driver = sql
>>> }
>>> protocol lda {
>>> mail_plugins = quota mail_log notify sieve
>>> }
>>> protocol imap {
>>> mail_max_userip_connections = 20
>>> mail_plugins = quota mail_log notify imap_quota imap_zlib
>>> }
>>> protocol lmtp {
>>> mail_plugins = quota mail_log notify sieve
>>> }
>>>
>>
>> I don't know if it makes a difference for you as you are not using
>> "LAYOUT=fs" but try to disable those imap_client_workarounds.
>>
>
> Good catch, thank you. (I used LAYOUT=fs at first, but found behavior a
> little anomalous. I forgot to disable the workarounds).
>
> This may have stopped the problem of redownloading the entire mailbox
> (on restart I got downloading 1 of 8 instead of 1 of 170... 30 of 1330
> in the status pane) . My other mailboxes still need to sync and it
> might take a few days to verify that things are stable. I did get 81
> immediate "Warning: Maildir /mail/mydomain.com/gessel//.Bulkmail:
> Expunged message reappeared, giving a new UID" warnings on connect, but
> if this is the problem, it might stop after all the directories are
> resynced.
>
> I'll update with further data as it comes in.
>
> I am also somewhat suspect of QRSYNC from this post:
> http://dovecot.org/pipermail/dovecot/2011-August/130687.html - though
> this is from a long time ago and it seems a little surprising that bugs
> on this seemingly useful capability would persist. In any event (if
> useful information), my capability enumeration reads:
>
> # telnet localhost 143
>
> * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
> IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
> a login user pass
> a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
> IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS
> THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN
> NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH
> ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY
> MOVE COMPRESS=DEFLATE QUOTA] Logged in
>
>
> I did try setting mail.server.default.use_condstore;false in
> Thunderbird, but that didn't change the behavior of reloading the entire
> inbox on startup so I've changed that back as that wasn't the desired
> result.
>
Disabling the imap_client_workarounds in TB ended up neither helping nor
harming. The first sync was promising but as soon as that was finished
(it can take a while to download 8 messages to Iraq) it started over
re-downloading the entire mailbox. I don't seem to be generating
duplicate messages, but I am redownloading every message over and over.
My TB activity manager is filled with paused "bringing folder XXX up to
date" messages.
Is there any indication of current problems with CONDSTORE/QRESYNC since
2011 or so?
I've set:
imap_capability = IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS
THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN
NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 ESEARCH ESORT SEARCHRES
WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE
COMPRESS=DEFLATE QUOTA
and will report if this yields any changes
More information about the dovecot
mailing list