Bug renaming folder hierarchies

Klaus Steinberger klaus.steinberger at Physik.Uni-Muenchen.DE
Tue Feb 23 13:21:38 EET 2021


Hi,

we discovered a major problem with renaming folders with subfolders

testszenario:

folders:

test1
test1/test1-1
test1/test1-2

all 3 folders contain a test message

after renaming the top level folder  test1 to test2 following folders exist:

test2
test2/test1-1
test2/test1-2

the subfolders test1-1 and test1-2 are empty, the top level folder contains the
correct message.


Now renmaing test2 back to test1:

Alle folders again  contain their messages.

So this looks like during renaming the top level folder just the message
references for the subfolders got lost, and with renaming back they are there again.

I can reproduce this behavior both with thunderbird and Horde Webmail as a
client, also it happens with a second different dovecot setup

Here is the dovecot config:

root at dmz-sv-dovecot ~]# dovecot -n
# 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.13 (cdd19fe3)
# OS: Linux 3.10.0-1160.15.2.el7.x86_64 x86_64 Scientific Linux release 7.9
(Nitrogen) nfs4
# Hostname: dmz-sv-dovecot.physik.uni-muenchen.de
auth_cache_negative_ttl = 5 mins
auth_cache_size = 10 M
auth_cache_ttl = 5 mins
auth_socket_path = /var/run/dovecot/auth-userdb
auth_username_format = %Ln
auth_verbose = yes
default_client_limit = 32768
default_process_limit = 8192
dict {
  acl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
first_valid_uid = 8
imap_capability = +SPECIAL-USE
imap_hibernate_timeout = 1 mins
imapc_features = rfc822.size
imapc_host = zarafa.physik.uni-muenchen.de
imapc_user = %u
lda_original_recipient_header = X-Original-To
mail_fsync = always
mail_location =
mdbox:/var/vmail/%Lu:FULLDIRNAME=DbOx-mAiLs:UTF-8:VOLATILEDIR=/var/dovecot-volatile/%Lu:INDEX=/var/vmail/%Lu/indexes
mail_nfs_index = yes
mail_plugins = quota acl lazy_expunge fts fts_lucene
mail_prefetch_count = 20
mail_server_admin = mailto:helpdesk at physik.uni-muenchen.de
mail_server_comment = IMAP Server Fakultätfür Physik LMU München
mailbox_list_index_very_dirty_syncs = 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 index ihave duplicate
mime foreverypart extracttext
mbox_write_locks = fcntl
metric imap_command {
  filter = event=imap_command_finished AND tagged_reply_state=OK
  group_by = cmd_name
}
metric imap_select_no {
  filter = event=imap_command_finished AND cmd_name=SELECT AND tagged_reply_state=NO
}
metric imap_select_no_notfound {
  filter = event=imap_command_finished AND cmd_name=SELECT AND
tagged_reply="NO*Mailbox doesn't exist:*"
}
metric push_notifications {
  filter = event=push_notification_finished
}
metric storage_http_gets {
  filter = event=http_request_finished AND category=storage AND method=get
}
mmap_disable = yes
namespace {
  list = children
  location =
mdbox:/var/vmail/%%Lu:FULLDIRNAME=DbOx-mAiLs:INDEX=/var/vmail/%%Lu/indexes:INDEXPVT=/var/vmail/%%Lu/indexes.pvt:UTF-8
  prefix = shared/%%n/
  separator = /
  subscriptions = no
  type = shared
}
namespace {
  hidden = yes
  list = children
  location = mdbox:/var/vmail/%Lu/expunged:FULLDIRNAME=DbOx-mAiLs:UTF-8
  prefix = .EXPUNGED/
  separator = /
  subscriptions = no
  type = private
}
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
  separator = /
  subscriptions = yes
  type = private
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
plugin {
  acl = vfile:/etc/dovecot/dovecot.acl
  acl_shared_dict = file:/var/vmail/dovecot-dicts/shared-mailboxes
  fts = lucene
  fts_lucene = whitespace_chars=@.
  lazy_expunge = .EXPUNGED/
  lazy_expunge_only_last_instance = yes
  quota = dict:User quota::proxy::quota
  quota_grace = 10%%
  quota_rule = *:storage=1G
  quota_rule2 = Trash:storage=+100M
  quota_rule3 = Spam:storage=+100M
  quota_rule4 = .EXPUNGED:ignore
  recipient_delimiter = +
  sieve = file:/var/vmail/%Lu/sieve;active=/var/vmail/%Lu/dovecot.sieve
  sieve_vacation_use_original_recipient = yes
}
postmaster_address = postmaster at physik.uni-muenchen.de
protocols = imap lmtp sieve sieve
quota_full_tempfail = yes
service auth {
  unix_listener auth-userdb {
    group = daemon
    mode = 0666
    user = mail
  }
}
service dict {
  unix_listener dict {
    group = daemon
    mode = 0600
    user = vmail
  }
}
service imap-hibernate {
  client_limit = 8192
  unix_listener imap-hibernate {
    user = vmail
  }
}
service imap-login {
  process_min_avail = 6
  service_count = 0
  vsz_limit = 1 G
}
service imap-postlogin {
  executable = script-login -d /etc/dovecot/acl_groups.py
  user = $default_internal_user
}
service imap {
  executable = imap imap-postlogin
  process_limit = 8192
  unix_listener imap-master {
    user = dovecot
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  process_min_avail = 0
  service_count = 1
  vsz_limit = 64 M
}
service managesieve {
  process_limit = 1024
}
service stats {
  unix_listener stats-reader {
    group = dovecot
    mode = 0660
    user = vmail
  }
  unix_listener stats-writer {
    group = dovecot
    mode = 0660
    user = vmail
  }
}
ssl = required
ssl_cert = </etc/pki/tls/certs/dmz-sv-dovecot-with-chain.crt.pem
ssl_client_ca_file = /etc/ssl/certs/ca-bundle.crt
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
verbose_proctitle = yes
protocol lmtp {
  mail_plugins = quota acl lazy_expunge fts fts_lucene sieve
}
protocol lda {
  mail_plugins = quota acl lazy_expunge fts fts_lucene sieve
  syslog_facility = mail
}
protocol imap {
  mail_max_userip_connections = 20
  mail_plugins = quota acl lazy_expunge fts fts_lucene imap_quota imap_acl
lazy_expunge
}
protocol sieve {
  mail_max_userip_connections = 10
  managesieve_implementation_string = Dovecot Pigeonhole
  managesieve_logout_format = bytes=%i/%o
  managesieve_max_compile_errors = 5
  managesieve_max_line_length = 64 k
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0x41117F796966D978.asc
Type: application/pgp-keys
Size: 1241 bytes
Desc: not available
URL: <https://dovecot.org/pipermail/dovecot/attachments/20210223/130ae66a/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: klaus_steinberger.vcf
Type: text/x-vcard
Size: 333 bytes
Desc: not available
URL: <https://dovecot.org/pipermail/dovecot/attachments/20210223/130ae66a/attachment.vcf>


More information about the dovecot mailing list