Emails not visible after renaming folders
Timo Sirainen
timo at sirainen.com
Wed Aug 14 23:08:40 EEST 2019
Looks like this happens when you use a combination of FULLDIRNAME and INDEX in mail_location. Without one of these, or using DIRNAME instead of FULLDIRNAME it works correctly. Tracking internally in DOP-1348.
> On 6 Aug 2019, at 14.22, Aleksandr via dovecot <dovecot at dovecot.org> wrote:
>
> Hi guys.
>
> Does anyone have problems with a similar configuration (mdbox)?
>
> Just tested with latest version (stage servers installation: dovecot 2.3.7), also affected.
>
> Not critical, but have complaints from users, 1-2 per month.
>
>
> 26.06.2019 12:05, Aleksandr пишет:
>> Copying or moving with email client: thunderbird, roundcube (webmail), mutt or any other email client via imap protocol.
>>
>> 25.06.2019 22:10, Germán Herrera пишет:
>>> Are you copying/moving the emails with {cp|mv} or with "doveadm {copy|move}"?
>>>
>>> On 2019-06-25 12:00, Aleksandr via dovecot wrote:
>>>> Hello,
>>>>
>>>> I have strange problem with "losing" emails after rename mail
>>>> folder(s) (via imap client: thunderbird, roundcude, etc..)
>>>>
>>>> How to reproduce:
>>>>
>>>> 1. Create some folder name, like TEST
>>>> 2. Create sub-folder under TEST (like SUBTEST)
>>>>
>>>> Structure:
>>>>
>>>> TEST
>>>> |--SUBTEST
>>>>
>>>>
>>>> # doveadm mailbox list -u postmaster at testmailbox
>>>> Spam
>>>> Trash
>>>> Sent
>>>> Drafts
>>>> INBOX
>>>> TEST
>>>> TEST/SUBTEST
>>>>
>>>> 3. Move (or copy) mails from INBOX to SUBTEST (all looks fine, and
>>>> mails visible under SUBTEST)
>>>> 4. Rename TEST folder to any new name, NEWTEST
>>>>
>>>> Let`s try to view mails in mail client in NEWTEST-SUBTEST, folder have
>>>> no emails :(
>>>>
>>>>
>>>> mailsrv# doveadm -f table mailbox status -u postmaster at testmailbox
>>>> "messages vsize" NEWTEST*
>>>> mailbox messages vsize
>>>> NEWTEST 0 0
>>>> NEWTEST/SUBTEST 0 0
>>>>
>>>> If doveadm force-resync postmaster at testmailbox, mails will be visible in INBOX
>>>>
>>>> mailsrv# doveadm -f table mailbox status -u postmaster at testmailbox
>>>> "messages vsize" INBOX*
>>>> mailbox messages vsize
>>>> INBOX 2 28
>>>>
>>>> Dovecot installation: CentOS x86_64 Linux 7.5.1804
>>>>
>>>> Storage: HDD Local Partition - XFS filesystem / multi-dbox (mdbox) as
>>>> mail_storage (this problem is not reproduced with the settings as
>>>> Maildir storage !)
>>>> somthing wrong with mapping indices.
>>>>
>>>>
>>>> ---- [start] ----
>>>>
>>>> # dovecot -n
>>>>
>>>> # 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf
>>>> # Pigeonhole version 0.4.21 (92477967)
>>>> # OS: Linux 3.10.0-862.2.3.el7.x86_64 x86_64 CentOS Linux release
>>>> 7.5.1804 (Core)
>>>> # Hostname: xxxx
>>>> auth_mechanisms = plain login digest-md5 cram-md5
>>>> base_dir = /var/run/dovecot/
>>>> default_client_limit = 20000
>>>> default_login_user = dovecot
>>>> default_process_limit = 10000
>>>> dict {
>>>> quota = redis:host=127.0.0.1:prefix=user/:timeout_msecs=1000
>>>> }
>>>> disable_plaintext_auth = no
>>>> first_valid_gid = 90
>>>> first_valid_uid = 90
>>>> imapc_features = rfc822.size fetch-headers
>>>> imapc_host = xxxx
>>>> imapc_user = %u
>>>> lda_mailbox_autocreate = yes
>>>> lda_mailbox_autosubscribe = yes
>>>> login_greeting = xxxx.
>>>> login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
>>>> login_trusted_networks = 10.0.1.0/24
>>>> mail_access_groups = mail
>>>> mail_debug = yes
>>>> mail_fsync = never
>>>> mail_gid = 97
>>>> mail_location =
>>>> mdbox:~/mail/mailboxes:FULLDIRNAME=mBoX-MeSsAgEs:INDEX=~/mail/index:CONTROL=~/mail/control:INBOX=~/mail/mailboxes/inbox
>>>> mail_log_prefix = "%{session} %Us(%u): "
>>>> mail_max_lock_timeout = 30 secs
>>>> mail_plugins = quota zlib
>>>> mail_prefetch_count = 20
>>>> mail_privileged_group = mail
>>>> mail_uid = 97
>>>> managesieve_notify_capability = mailto
>>>> managesieve_sieve_capability = fileinto reject envelope
>>>> encoded-character vacation subaddress comparator-i;ascii-numeric
>>>> relational regex imap4flags copy include variables enotify environment
>>>> mailbox date index ihave duplicate mime foreverypart extracttext
>>>> vacation-seconds editheader
>>>> mbox_lock_timeout = 30 secs
>>>> mbox_very_dirty_syncs = yes
>>>> mbox_write_locks = fcntl
>>>> namespace inbox {
>>>> inbox = yes
>>>> list = yes
>>>> location =
>>>> mailbox Drafts {
>>>> auto = subscribe
>>>> special_use = \Drafts
>>>> }
>>>> mailbox Sent {
>>>> auto = subscribe
>>>> special_use = \Sent
>>>> }
>>>> mailbox Spam {
>>>> auto = subscribe
>>>> }
>>>> mailbox Trash {
>>>> auto = subscribe
>>>> special_use = \Trash
>>>> }
>>>> prefix =
>>>> separator = /
>>>> type = private
>>>> }
>>>> passdb {
>>>> args = /etc/dovecot/dovecot-ldap.conf
>>>> driver = ldap
>>>> }
>>>> plugin {
>>>> cgroup_basedir = /usr/sys/cgroup
>>>> hostingAccount = default
>>>> quota = dict:User quota::proxy::quota
>>>> quota_grace = 0%%
>>>> quota_over_flag_value = TRUE
>>>> quota_over_script = account-quota mismatch %u
>>>> quota_rule = *:storage=4T
>>>> quota_warning = storage=101%% account-quota block %u
>>>> quota_warning1 = -storage=100%% account-quota unblock %u
>>>> sieve = file:~/sieve;active=~/.dovecot.sieve
>>>> sieve_before = /home/sieve/%d/
>>>> sieve_extensions = +editheader +vacation-seconds -body
>>>> sieve_max_redirects = 200
>>>> sieve_vacation_min_period = 1s
>>>> trash_folder = Trash
>>>> zlib_save = lz4
>>>> zlib_save_level = 6
>>>> }
>>>> pop3_delete_type = expunge
>>>> protocols = imap pop3 sieve
>>>> service account-quota {
>>>> executable = script /usr/local/scripts/account-quota
>>>> unix_listener account-quota {
>>>> mode = 0666
>>>> user = dovecot
>>>> }
>>>> user = dovecot
>>>> }
>>>> service anvil {
>>>> chroot = /var/empty
>>>> client_limit = 0
>>>> drop_priv_before_exec = no
>>>> executable = anvil
>>>> extra_groups =
>>>> group = $default_internal_user
>>>> idle_kill = 4294967295 secs
>>>> privileged_group =
>>>> process_limit = 1
>>>> process_min_avail = 1
>>>> protocol =
>>>> service_count = 0
>>>> type = anvil
>>>> unix_listener anvil-auth-penalty {
>>>> group = $default_internal_user
>>>> mode = 0660
>>>> user = dovecot
>>>> }
>>>> unix_listener anvil {
>>>> group = $default_internal_user
>>>> mode = 0660
>>>> user = dovecot
>>>> }
>>>> user = $default_internal_user
>>>> vsz_limit = 18446744073709551615 B
>>>> }
>>>> service auth-worker {
>>>> chroot = /var/empty
>>>> user = $default_internal_user
>>>> }
>>>> service auth {
>>>> chroot = /var/empty
>>>> executable = /usr/libexec/dovecot/auth
>>>> unix_listener auth-client {
>>>> mode = 0660
>>>> }
>>>> unix_listener auth-master {
>>>> mode = 0666
>>>> }
>>>> unix_listener auth-userdb {
>>>> mode = 0777
>>>> }
>>>> user = $default_internal_user
>>>> }
>>>> service dict {
>>>> executable = /usr/libexec/dovecot/dict
>>>> unix_listener dict {
>>>> mode = 0600
>>>> user = $default_internal_user
>>>> }
>>>> }
>>>> service imap-login {
>>>> executable = /usr/libexec/dovecot/imap-login
>>>> inet_listener imap {
>>>> address = xxxxxxx
>>>> port = 143
>>>> }
>>>> process_limit = 10000
>>>> process_min_avail = 1
>>>> service_count = 0
>>>> user = dovecot
>>>> }
>>>> service imap {
>>>> executable = /usr/libexec/dovecot/imap
>>>> process_limit = 18000
>>>> process_min_avail = 1
>>>> service_count = 0
>>>> vsz_limit = 256 M
>>>> }
>>>> service lmtp {
>>>> process_limit = 10
>>>> }
>>>> service pop3-login {
>>>> executable = /usr/libexec/dovecot/pop3-login
>>>> inet_listener pop3 {
>>>> address = xxxxxx
>>>> port = 110
>>>> }
>>>> process_limit = 1000
>>>> process_min_avail = 1
>>>> service_count = 0
>>>> user = dovecot
>>>> vsz_limit = 256 M
>>>> }
>>>> service pop3 {
>>>> executable = /usr/libexec/dovecot/pop3
>>>> process_limit = 1000
>>>> process_min_avail = 1
>>>> service_count = 0
>>>> }
>>>> service send-warning {
>>>> executable = script /usr/local/scripts/send-warning
>>>> unix_listener send-warning {
>>>> mode = 0666
>>>> user = dovecot
>>>> }
>>>> user = dovecot
>>>> }
>>>> shutdown_clients = no
>>>> ssl_cert = </etc/dovecot/xxxx.crt
>>>> ssl_key = # hidden, use -P to show it
>>>> userdb {
>>>> args = /etc/dovecot/dovecot-ldap.conf
>>>> driver = ldap
>>>> }
>>>> verbose_proctitle = yes
>>>> protocol lda {
>>>> mail_plugins = sieve quota cgroups zlib
>>>> }
>>>> protocol imap {
>>>> imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
>>>> mail_max_userip_connections = 50
>>>> mail_plugins = quota imap_quota mail_log notify cgroups zlib
>>>> }
>>>> protocol pop3 {
>>>> mail_max_userip_connections = 20
>>>> mail_plugins = quota cgroups zlib
>>>> pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
>>>> pop3_enable_last = no
>>>> pop3_no_flag_updates = yes
>>>> pop3_uidl_format = %08Xu%08Xv
>>>> }
>>>> ---- [end] ----
>>>>
>>>>
>>>> Regards,
>>>>
>>>> Aleksandr.
More information about the dovecot
mailing list