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