Hello,
I want to make a correction on my first post. We are using
version 2.3.19.1 for all our dovecot servers. Is there any update
regarding this issue? I would be happy to provide more details if
necessary.
Best Regards,
Nikos Pyrgiotis
Hello,We recently migrated our mail server to a dovecot cluster of 5 nodes, a dovecot proxy, 2 directors and 2 dovecot backends.All dovecot nodes run version 2.19.1. We use a glusterfs mounted volume on the backends for the mail storage.We noticed that when issuing the IMAP command to check for UNSEEN messages for mails on the shared namespace instead of seeing the value of the unseen messages of the user that the mailbox has been shared to,the value of the unseen messages of the owner of the mailbox is returned.This behavior causes thunderbird when getting new messages for shared mailboxes, to show briefly all messages of the mailbox as unseen for the user before showing the correct unseen count for the shared mailbox.The mail location of the shared mailboxes is defined with imapc storage type as described in the documentation.Is this a dovecot bug? Can we configure a different dovecot configuration setting so that imap status command reports the correct unseen field count when mail location is an imapc storage location?An examples is given below when running doveadm command from one the 2 dovecot directors:When issuing the status command we see that the unseen count is 2:root@doved0-rmt0-cn1:/etc/cron.d# doveadm mailbox status -u npyrgiotis all shared.sysadmins doveadm(npyrgiotis): Info: remote(10.101.0.71:8080): doveadm(npyrgiotis@domie02.com)<19078><9l8IJTb+GWOGSgAAEU9A+w>: imapc(10.101.0.75:143): Connected to 10.101.0.75:143 (local 10.101.0.71:33476) shared.sysadmins messages=2 recent=0 uidnext=3 uidvalidity=1662640492 unseen=2 highestmodseq=3 vsize=3950 guid=c92f64f79f0d1ed01e6d5b314f04886c firstsaved=1662643853shared.sysadmins messages=2 recent=0 uidnext=3 uidvalidity=1662640492 unseen=2 highestmodseq=3 vsize=3950 guid=c92f64f79f0d1ed01e6d5b314f04886c firstsaved=1662643853But when fetching the emails of the mailboxes we can see that the \Seen flag is set for both emailsroot@doved0-rmt0-cn1:/etc/cron.d# doveadm fetch -u npyrgiotis flags mailbox shared.sysadmins ALL doveadm(npyrgiotis): Info: remote(10.101.0.71:8080): doveadm(npyrgiotis@domie02.com)<19074><e7rWDgj+GWOCSgAAEU9A+w>: imapc(10.101.0.75:143): Connected to 10.101.0.75:143 (local 10.101.0.71:38750) flags: \Seen flags: \SeenBelow i post the dovecot configuration of one of the two dovecot backends:# 2.3.19.1 (9b53102964): /etc/dovecot/dovecot.conf# Pigeonhole version 0.5.19 (4eae2f79)# OS: Linux 5.10.0-17-amd64 x86_64 Debian 11.4# Hostname: doveb0-rmt0-cn1auth_cache_negative_ttl = 5 minsauth_cache_size = 50 Mauth_debug = yesauth_default_realm = example.comauth_master_user_separator = *auth_mechanisms = plain loginauth_verbose = yesauth_worker_max_count = 16disable_plaintext_auth = nofirst_valid_uid = 499hostname = smtp.example.comimapc_features = fetch-bodystructure fetch-headers rfc822.size search modseq acl delay-loginimapc_host = 10.101.0.75imapc_password = # hidden, use -P to show itimapc_sasl_mechanisms = plain loginimapc_ssl = starttlsimapc_ssl_verify = nolast_valid_uid = 499lda_mailbox_autocreate = yeslda_mailbox_autosubscribe = yeslogin_greeting = You have successfully logged in to example.com IMAP serverlogin_trusted_networks = 10.101.0.73 10.101.0.74mail_always_cache_fields = flags hdr.* date.received date.sentmail_cache_fields = flags date.received guid size.physical size.virtual imap.bodystructure body.snippetmail_debug = yesmail_fsync = alwaysmail_plugins = " notify mail_log zlib acl"mail_privileged_group = mailmanagesieve_notify_capability = mailtomanagesieve_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 extracttextmdbox_rotate_size = 200 Mmmap_disable = yesnamespace example {list = childrenlocation = imapc:~/shared/%%n:INDEXPVT=~/shared-pvt/%%nprefix = shared.%%n.separator = .subscriptions = notype = shared}namespace inbox {inbox = yeslocation =mailbox Drafts {special_use = \Drafts}mailbox Junk {special_use = \Junk}mailbox Sent {special_use = \Sent}mailbox "Sent Messages" {special_use = \Sent}mailbox Spam.Virus {auto = subscribe}mailbox Spam {auto = subscribe}mailbox Trash {special_use = \Trash}prefix =separator = .subscriptions = yestype = private}passdb {args = password=#hidden_use-P_to_show#driver = staticmaster = yesoverride_fields = allow_real_nets=127.0.0.0/8,local,10.101.0.73,10.101.0.74 userdb_acl_user=%{auth_user} userdb_namespace/example/disabled=yesresult_success = continue}passdb {args = password=#hidden_use-P_to_show#driver = staticoverride_fields = allow_real_nets=127.0.0.0/8,local,10.101.0.73,10.101.0.74result_success = continue}passdb {args = /etc/dovecot/dovecot-ldap-users.conf.extdriver = ldap}passdb {args = /etc/dovecot/dovecot-ldap-groups.conf.extdriver = ldap}plugin {acl = vfile:/etc/dovecot/global-acls/%d/master-dovecot-acl:cache_secs=300acl_defaults_from_inbox = yesacl_globals_only = noacl_shared_dict = file:/var/dovecot-acl/%d/shared-mailboxes.dbimap_compress_deflate_level = 6mail_log_events = flag_changemail_log_fields = uid box flagssieve_before = /var/vmail/global-sieve/global.sievesieve_env_email_address = %usieve_env_mailbox_prefix = %{userdb:mailbox_prefix}sieve_global = /var/vmail/sievesieve_global_extensions = +editheader +vnd.dovecot.environmentzlib_save = zstdzlib_save_level = 5}protocols = " imap lmtp sieve submission"service auth-worker {user = dovecot}service auth {unix_listener auth-userdb {group = mailmode = 0666user = vmail}}service doveadm {inet_listener dovadm-dom-mgmt {address = 10.100.1.71port = 8080ssl = no}inet_listener dovadm-dom {address = 10.101.0.71port = 8080ssl = no}vsz_limit = 256 M}service imap-login {inet_listener imap-dom {address = 10.101.0.71port = 143ssl = no}inet_listener imap {port = 0}inet_listener imaps-dom {address = 10.101.0.71port = 993ssl = yes}inet_listener imaps {port = 0}process_limit = 400process_min_avail = 2service_count = 20vsz_limit = 512 M}service imap {process_limit = 2048process_min_avail = 0service_count = 1vsz_limit = 4 G}service lmtp {inet_listener lmtp-dom {address = 10.101.0.71port = 24ssl = no}process_limit = 0process_min_avail = 0service_count = 0unix_listener lmtp {mode = 0666}vsz_limit = 256 M}service managesieve-login {inet_listener sieve-dom {address = 10.101.0.71port = 4190ssl = no}inet_listener sieve {port = 0}process_limit = 0process_min_avail = 0service_count = 0vsz_limit = 64 M}service managesieve {process_limit = 1024process_min_avail = 0service_count = 1vsz_limit = 256 M}service submission-login {inet_listener submission-dom {address = 10.101.0.71port = 587ssl = no}inet_listener submission {port = 0}inet_listener submissions-dom {address = 10.101.0.71port = 465ssl = yes}process_limit = 250process_min_avail = 2service_count = 1vsz_limit = 256 M}service submission {process_limit = 1024process_min_avail = 0service_count = 1vsz_limit = 256 M}ssl = requiredssl_cert = </etc/ssl/certs/doveb0-rmt0-cn1.mail.rmt.example.com.pemssl_client_ca_dir = /etc/ssl/certsssl_key = # hidden, use -P to show itsubmission_max_mail_size = 30000 ksubmission_relay_host = 10.101.0.7submission_relay_port = 587submission_relay_ssl = starttlssubmission_relay_ssl_verify = nosubmission_relay_trusted = yesuserdb {driver = prefetch}userdb {args = /etc/dovecot/dovecot-ldap-users.conf.extdriver = ldap}userdb {args = /etc/dovecot/dovecot-ldap-groups.conf.extdriver = ldap}protocol lmtp {mail_plugins = " notify mail_log zlib acl sieve acl"}protocol lda {mail_plugins = " notify mail_log zlib acl sieve acl"}protocol imap {mail_max_userip_connections = 100mail_plugins = " notify mail_log zlib acl"}protocol sieve {mail_max_userip_connections = 40}protocol submission {mail_max_userip_connections = 70}local 10.101.0.71 {doveadm_allowed_commands =doveadm_password = # hidden, use -P to show it}local 10.100.1.71 {doveadm_allowed_commands =doveadm_password = # hidden, use -P to show it}Thank you,Nikolaos Pyrgiotis