I don't know how I can tell which mailbox is selected / being appended to.
Mailbox format is Maildir. Filesystem is XFS.
System was upgraded from 2.2.36.1 to 2.3.16, and it seems this started happening following that.
Sep 20 15:49:34 imap1 dovecot: imap(u@d)<17673>
# doveconf -n # 2.3.16 (): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.16 (09c29328) # OS: Linux 5.10.0-8-amd64 x86_64 Debian 11.0 # Hostname: imap1.xxxxx.com auth_default_realm = xxxxx.com auth_master_user_separator = * auth_mechanisms = plain login cram-md5 auth_proxy_self = xxxxxxxxxx auth_verbose = yes auth_verbose_passwords = plain dict { lastlogin = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it imap_hibernate_timeout = 10 secs lmtp_rcpt_check_quota = yes log_timestamp = "%Y-%m-%d %H:%M:%S " login_greeting = Dovecot ready login_log_format_elements = user=<%u> method=%m rip=%r lip=%l pip=%{real_rip} mpid=%e %c %k session=<%{session}> login_trusted_networks = xxxxxxxxxxxxxxxxx mail_attachment_detection_options = add-flags-on-save mail_gid = vmail mail_location = /nowhere mail_plugins = quota listescape mail_privileged_group = mail mail_uid = vmail managesieve_sieve_capability = fileinto envelope encoded-character subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables mailbox date index ihave duplicate mime foreverypart extracttext namespace inbox { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = subscribe autoexpunge = 30 days special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { auto = subscribe autoexpunge = 30 days special_use = \Trash } mailbox Trash/* { autoexpunge = 30 days } prefix = separator = / type = private } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes pass = yes } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { imapsieve_mailbox1_before = file:/usr/local/lib/imapsieve/report-spam.sieve imapsieve_mailbox1_causes = COPY APPEND imapsieve_mailbox1_name = Junk imapsieve_mailbox2_before = file:/usr/local/lib/imapsieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Junk imapsieve_mailbox2_name = * imapsieve_mailbox3_before = file:/usr/local/lib/imapsieve/report-ham.sieve imapsieve_mailbox3_causes = APPEND imapsieve_mailbox3_name = INBOX last_login_dict = proxy::lastlogin last_login_key = # hidden, use -P to show it quota = dict:user::proxy::quota quota_rule = *:storage=2G quota_rule2 = Trash:storage=+250M quota_rule3 = Junk:ignore quota_vsizes = yes quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=85%% quota-warning 85 %u sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = /etc/dovecot/sieve-global/fileinto-spam.sieve sieve_extensions = -vacation -body -reject -enotify -environment -virustest -spamtest sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment sieve_max_actions = 32 sieve_max_redirects = 4 sieve_max_script_size = 10K sieve_pipe_bin_dir = /usr/local/lib/imapsieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_quota_max_scripts = 100 sieve_quota_max_storage = 4M } pop3_fast_size_lookups = yes pop3_no_flag_updates = yes postmaster_address = postmaster@xxxxx.com protocols = imap pop3 lmtp sieve quota_full_tempfail = yes service auth-worker { user = $default_internal_user } service auth { client_limit = 2448 unix_listener auth-userdb { group = root mode = 0600 user = vmail } } service dict { unix_listener dict { group = root mode = 0600 user = vmail } } service imap-hibernate { unix_listener imap-hibernate { group = $default_internal_group mode = 0660 } } service imap-login { process_min_avail = 4 service_count = 0 vsz_limit = 192 M } service imap { process_limit = 1024 unix_listener imap-master { user = $default_internal_user } vsz_limit = 384 M } service lmtp { inet_listener lmtp { port = 7025 } } service managesieve-login { inet_listener sieve { port = 4190 } service_count = 0 vsz_limit = 64 M } service managesieve { process_limit = 20 } service pop3-login { process_min_avail = 4 service_count = 0 vsz_limit = 192 M } service pop3 { process_limit = 1024 } service quota-warning { executable = script /usr/local/bin/quota-warning unix_listener quota-warning { user = vmail } user = dovecot } ssl_cert =