Hi! This seems to be a bug in imapc client, we'll look into this. Thank you for reporting this issue. It's currently tracked as DOV-5579.
Aki > On 07/10/2022 15:38 EEST Nikolaos Pyrgiotis <npyrgio...@modulus.gr> wrote: > > > 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 > > On 8/9/22 17:47, Nikolaos Pyrgiotis wrote: > > > Hello, > > We recently migrated our mail server to a dovecot cluster of5nodes, a > > dovecot proxy,2directors and2dovecot backends. > > All dovecot nodes run version2.19.1. We use a glusterfs mounted volume on > > the backendsforthe mail storage. > > We noticed that when issuing the IMAP command to checkforUNSEEN > > messagesformails 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 messagesforshared > > mailboxes, to show briefly all messages of the mailbox as unseenforthe user > > before showing the correct unseen countforthe shared mailbox. > > The mail location of the shared mailboxes is defined with imapc storage > > type as describedinthe 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 is2: > > 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(npyrgio...@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=1662643853 > > shared.sysadmins > > messages=2recent=0uidnext=3uidvalidity=1662640492unseen=2highestmodseq=3vsize=3950guid=c92f64f79f0d1ed01e6d5b314f04886c > > firstsaved=1662643853 > > > > But when fetching the emails of the mailboxes we can see that the \Seen > > flag is set for both emails > > > > root@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(npyrgio...@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: \Seen > > Below i post the dovecot configuration of one of the two dovecot backends: > > #2.3.19.1 (9b53102964): /etc/dovecot/dovecot.conf > > # Pigeonhole version0.5.19 (4eae2f79) > > # OS: Linux5.10.0-17-amd64 x86_64 Debian11.4 > > # Hostname: doveb0-rmt0-cn1 > > auth_cache_negative_ttl =5mins > > auth_cache_size =50M > > auth_debug = yes > > auth_default_realm = example.com > > auth_master_user_separator = * > > auth_mechanisms = plain login > > auth_verbose = yes > > auth_worker_max_count =16 > > disable_plaintext_auth = no > > first_valid_uid =499 > > hostname = smtp.example.com > > imapc_features = fetch-bodystructure fetch-headers rfc822.size search > > modseq acl delay-login > > imapc_host =10.101.0.75 > > imapc_password = # hidden, use -P to show it > > imapc_sasl_mechanisms = plain login > > imapc_ssl = starttls > > imapc_ssl_verify = no > > last_valid_uid =499 > > lda_mailbox_autocreate = yes > > lda_mailbox_autosubscribe = yes > > login_greeting = You have successfully loggedinto example.com IMAP server > > login_trusted_networks =10.101.0.7310.101.0.74 > > mail_always_cache_fields = flags hdr.* date.received date.sent > > mail_cache_fields = flags date.received guid size.physical size.virtual > > imap.bodystructure body.snippet > > mail_debug = yes > > mail_fsync = always > > mail_plugins =" notify mail_log zlib acl" > > mail_privileged_group = mail > > 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 > > mdbox_rotate_size =200M > > mmap_disable = yes > > namespace example { > > list = children > > location = imapc:~/shared/%%n:INDEXPVT=~/shared-pvt/%%n > > prefix = shared.%%n. > > separator = . > > subscriptions = no > > type = shared > > } > > 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 Spam.Virus { > > auto = subscribe > > } > > mailbox Spam { > > auto = subscribe > > } > > mailbox Trash { > > special_use = \Trash > > } > > prefix = > > separator = . > > subscriptions = yes > > type = private > > } > > passdb { > > args = password=#hidden_use-P_to_show# > > driver = static > > master = yes > > override_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=yes > > result_success = continue > > } > > passdb { > > args = password=#hidden_use-P_to_show# > > driver = static > > override_fields = allow_real_nets=127.0.0.0/8,local,10.101.0.73,10.101.0.74 > > result_success = continue > > } > > passdb { > > args = /etc/dovecot/dovecot-ldap-users.conf.ext > > driver = ldap > > } > > passdb { > > args = /etc/dovecot/dovecot-ldap-groups.conf.ext > > driver = ldap > > } > > plugin { > > acl = vfile:/etc/dovecot/global-acls/%d/master-dovecot-acl:cache_secs=300 > > acl_defaults_from_inbox = yes > > acl_globals_only = no > > acl_shared_dict = file:/var/dovecot-acl/%d/shared-mailboxes.db > > imap_compress_deflate_level =6 > > mail_log_events = flag_change > > mail_log_fields = uid box flags > > sieve = file:~/sieve;active=~/sieve/%n.sieve > > sieve_before = /var/vmail/global-sieve/global.sieve > > sieve_env_email_address = %u > > sieve_env_mailbox_prefix = %{userdb:mailbox_prefix} > > sieve_global = /var/vmail/sieve > > sieve_global_extensions = +editheader +vnd.dovecot.environment > > zlib_save = zstd > > zlib_save_level =5 > > } > > protocols =" imap lmtp sieve submission" > > service auth-worker { > > user = dovecot > > } > > service auth { > > unix_listener auth-userdb { > > group = mail > > mode =0666 > > user = vmail > > } > > } > > service doveadm { > > inet_listener dovadm-dom-mgmt { > > address =10.100.1.71 > > port =8080 > > ssl = no > > } > > inet_listener dovadm-dom { > > address =10.101.0.71 > > port =8080 > > ssl = no > > } > > vsz_limit =256M > > } > > service imap-login { > > inet_listener imap-dom { > > address =10.101.0.71 > > port =143 > > ssl = no > > } > > inet_listener imap { > > port =0 > > } > > inet_listener imaps-dom { > > address =10.101.0.71 > > port =993 > > ssl = yes > > } > > inet_listener imaps { > > port =0 > > } > > process_limit =400 > > process_min_avail =2 > > service_count =20 > > vsz_limit =512M > > } > > service imap { > > process_limit =2048 > > process_min_avail =0 > > service_count =1 > > vsz_limit =4G > > } > > service lmtp { > > inet_listener lmtp-dom { > > address =10.101.0.71 > > port =24 > > ssl = no > > } > > process_limit =0 > > process_min_avail =0 > > service_count =0 > > unix_listener lmtp { > > mode =0666 > > } > > vsz_limit =256M > > } > > service managesieve-login { > > inet_listener sieve-dom { > > address =10.101.0.71 > > port =4190 > > ssl = no > > } > > inet_listener sieve { > > port =0 > > } > > process_limit =0 > > process_min_avail =0 > > service_count =0 > > vsz_limit =64M > > } > > service managesieve { > > process_limit =1024 > > process_min_avail =0 > > service_count =1 > > vsz_limit =256M > > } > > service submission-login { > > inet_listener submission-dom { > > address =10.101.0.71 > > port =587 > > ssl = no > > } > > inet_listener submission { > > port =0 > > } > > inet_listener submissions-dom { > > address =10.101.0.71 > > port =465 > > ssl = yes > > } > > process_limit =250 > > process_min_avail =2 > > service_count =1 > > vsz_limit =256M > > } > > service submission { > > process_limit =1024 > > process_min_avail =0 > > service_count =1 > > vsz_limit =256M > > } > > ssl = required > > ssl_cert = </etc/ssl/certs/doveb0-rmt0-cn1.mail.rmt.example.com.pem > > ssl_client_ca_dir = /etc/ssl/certs > > ssl_key = # hidden, use -P to show it > > submission_max_mail_size =30000k > > submission_relay_host =10.101.0.7 > > submission_relay_port =587 > > submission_relay_ssl = starttls > > submission_relay_ssl_verify = no > > submission_relay_trusted = yes > > userdb { > > driver = prefetch > > } > > userdb { > > args = /etc/dovecot/dovecot-ldap-users.conf.ext > > driver = ldap > > } > > userdb { > > args = /etc/dovecot/dovecot-ldap-groups.conf.ext > > driver = 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 =100 > > mail_plugins =" notify mail_log zlib acl" > > } > > protocol sieve { > > mail_max_userip_connections =40 > > } > > protocol submission { > > mail_max_userip_connections =70 > > } > > local10.101.0.71 { > > doveadm_allowed_commands = > > doveadm_password = # hidden, use -P to show it > > } > > local10.100.1.71 { > > doveadm_allowed_commands = > > doveadm_password = # hidden, use -P to show it > > } > > Thank you, > > Nikolaos Pyrgiotis