Sieve problem - Timeout while waiting for lock
Hi,
I have an issue with dovecot 2.3.7.2.
When lmtp stores a message into INBOX, I get this error:
2019-10-29 16:32:53 lmtp(“test@XXXX”)<28874><4IPiEytbuF3KcAAAioI89A>: Error: sieve: Execution of script /config/dovecot/common/default.sieve was aborted due to temporary failure 2019-10-29 16:32:53 lmtp(“test@XXXX”)<23470>: Error: sieve: msgid=CE595339-2976-6DFD-FDAD-EEA15CC53218@XXXX: failed to store into mailbox ‘INBOX’: Timeout while waiting for lock
This problem only occurs for one mailbox and when it receives a big amount of messages.
With the previous version (dovecot 2.2.15) this did never occur.
The file /config/dovecot/common/default.sieve is in local server, no on NFS filesystem
BR, Domenico
# 2.3.7.2 (3c910f64b): /config/dovecot/dovecot/dovecot.conf # Pigeonhole version 0.5.7.2 (7372921a) # OS: Linux 3.10.0-1062.1.2.el7.x86_64 x86_64 CentOS Linux release 7.7.1908 (Core)
auth_debug = yes auth_master_user_separator = * auth_username_format = base_dir = /data/dovecot/var/run/dovecot default_client_limit = 8192 default_vsz_limit = 768 M dict { sqlquota = mysql:/config/dovecot/common/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it first_valid_gid = 101 first_valid_uid = 102 imap_id_send = import_environment = TZ info_log_path = /LOGS/dovecot/dovecot.log instance_name = dovecot listen = dovecot log_path = /LOGS/dovecot/dovecot.log log_timestamp = "%Y-%m-%d %H:%M:%S " mail_gid = 101 mail_location = maildir:%h/Maildir mail_max_userip_connections = 50 mail_plugins = quota fts fts_solr mail_log notify virtual mail_uid = 102 maildir_broken_filename_sizes = 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 vnd.dovecot.debug mbox_write_locks = fcntl namespace { hidden = yes list = no location = virtual:/config/dovecot/common/virtual:INDEX=~/virtual:SUBSCRIPTIONS=.subscriptions/%u prefix = Messaggi in arrivo. separator = . subscriptions = no } 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 Trash { special_use = \Trash } prefix = INBOX. separator = . subscriptions = yes type = private } passdb { args = /config/dovecot/common/passwd.masterusers driver = passwd-file master = yes } passdb { args = /config/dovecot/dovecot/dovecot-ldap.conf driver = ldap } passdb { args = /config/dovecot/common/dovecot-ldap-multiuser.conf driver = ldap master = yes } passdb { args = /config/dovecot/common/dovecot-ldap-webmail.conf.ext driver = ldap master = yes } plugin { fts = solr fts_autoindex = yes fts_autoindex_max_recent = 1000 fts_solr = url=https://192.160.10.81:8983/solr/dovecot/ mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change save mailbox_create mail_log_fields = uid box msgid size flags quota = dict:User quota::proxy::sqlquota quota_rule2 = INBOX.Trash:storage=+100M sieve_default = /dovecot/common/default.sieve sieve_extensions = +vnd.dovecot.debug } postmaster_address = posta@XXXX.it service anvil { client_limit = 8000 } service auth { client_limit = 12000 unix_listener auth-userdb { mode = 0600 } } service dict { process_limit = 7500 process_min_avail = 10 unix_listener dict { mode = 0600 user = dovecot } } service doveadm { chroot = client_limit = 1 drop_priv_before_exec = no executable = doveadm-server extra_groups = group = idle_kill = 0 inet_listener { port = 924 } privileged_group = process_limit = 0 process_min_avail = 10 protocol = service_count = 100 type = unix_listener doveadm-server { group = mode = 0600 user = } user = vsz_limit = 18446744073709551615 B } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_limit = 5000 process_min_avail = 10 } service imap { drop_priv_before_exec = yes process_limit = 5000 process_min_avail = 10 } service lmtp { inet_listener lmtp { port = 24 } process_limit = 2500 process_min_avail = 10 } service managesieve-login { inet_listener sieve { port = 4190 } process_min_avail = 0 service_count = 1 vsz_limit = 64 M } service managesieve { drop_priv_before_exec = yes process_limit = 1024 } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } process_limit = 1000 process_min_avail = 5 } service pop3 { drop_priv_before_exec = yes process_limit = 1000 process_min_avail = 5 } ssl_cert = </config/dovecot/common/certs/dovecot.pem ssl_client_ca_file = /config/solr-certs/solr-ssl.pem ssl_key = # hidden, use -P to show it userdb { args = /config/dovecot/dovecot/dovecot-ldap.conf driver = ldap } protocol lmtp { mail_plugins = quota mail_log notify sieve virtual fts fts_solr } protocol lda { mail_plugins = quota mail_log notify sieve virtual } protocol imap { mail_plugins = quota imap_quota mail_log notify virtual fts fts_solr } protocol pop3 { mail_plugins = quota mail_log notify virtual pop3_uidl_format = UID%u-%v }
Hi,
I have upgraded dovecot from version 2.2.15 to 2.3.7. I have an issue with protocol pop3 when the client delete more messages but did not execute "quit" command.
With version 2.3.7 without quit command, the server pop not remove mail marked deleted.
With version 2.2.15 even without quit command, the server pop remove mail marked deleted.
Has this behavior been fixed in the new version?
Has the expire plugin anything to do with that?
BR, Domenico
# 2.3.7.2 (3c910f64b): /config/dovecot/dovecot/dovecot.conf # Pigeonhole version 0.5.7.2 (7372921a) # OS: Linux 3.10.0-1062.1.2.el7.x86_64 x86_64 CentOS Linux release 7.7.1908 (Core)
auth_debug = yes auth_master_user_separator = * auth_username_format = base_dir = /data/dovecot/var/run/dovecot default_client_limit = 8192 default_vsz_limit = 768 M dict { sqlquota = mysql:/config/dovecot/common/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it first_valid_gid = 101 first_valid_uid = 102 imap_id_send = import_environment = TZ info_log_path = /LOGS/dovecot/dovecot.log instance_name = dovecot listen = dovecot log_path = /LOGS/dovecot/dovecot.log log_timestamp = "%Y-%m-%d %H:%M:%S " mail_gid = 101 mail_location = maildir:%h/Maildir mail_max_userip_connections = 50 mail_plugins = quota fts fts_solr mail_log notify virtual mail_uid = 102 maildir_broken_filename_sizes = 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 vnd.dovecot.debug mbox_write_locks = fcntl namespace { hidden = yes list = no location = virtual:/config/dovecot/common/virtual:INDEX=~/virtual:SUBSCRIPTIONS=.subscriptions/%u prefix = Messaggi in arrivo. separator = . subscriptions = no } 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 Trash { special_use = \Trash } prefix = INBOX. separator = . subscriptions = yes type = private } passdb { args = /config/dovecot/common/passwd.masterusers driver = passwd-file master = yes } passdb { args = /config/dovecot/dovecot/dovecot-ldap.conf driver = ldap } passdb { args = /config/dovecot/common/dovecot-ldap-multiuser.conf driver = ldap master = yes } passdb { args = /config/dovecot/common/dovecot-ldap-webmail.conf.ext driver = ldap master = yes } plugin { fts = solr fts_autoindex = yes fts_autoindex_max_recent = 1000 fts_solr = url=https://192.160.10.81:8983/solr/dovecot/ mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change save mailbox_create mail_log_fields = uid box msgid size flags quota = dict:User quota::proxy::sqlquota quota_rule2 = INBOX.Trash:storage=+100M sieve_default = /dovecot/common/default.sieve sieve_extensions = +vnd.dovecot.debug } postmaster_address = posta@XXXX.it service anvil { client_limit = 8000 } service auth { client_limit = 12000 unix_listener auth-userdb { mode = 0600 } } service dict { process_limit = 7500 process_min_avail = 10 unix_listener dict { mode = 0600 user = dovecot } } service doveadm { chroot = client_limit = 1 drop_priv_before_exec = no executable = doveadm-server extra_groups = group = idle_kill = 0 inet_listener { port = 924 } privileged_group = process_limit = 0 process_min_avail = 10 protocol = service_count = 100 type = unix_listener doveadm-server { group = mode = 0600 user = } user = vsz_limit = 18446744073709551615 B } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_limit = 5000 process_min_avail = 10 } service imap { drop_priv_before_exec = yes process_limit = 5000 process_min_avail = 10 } service lmtp { inet_listener lmtp { port = 24 } process_limit = 2500 process_min_avail = 10 } service managesieve-login { inet_listener sieve { port = 4190 } process_min_avail = 0 service_count = 1 vsz_limit = 64 M } service managesieve { drop_priv_before_exec = yes process_limit = 1024 } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } process_limit = 1000 process_min_avail = 5 } service pop3 { drop_priv_before_exec = yes process_limit = 1000 process_min_avail = 5 } ssl_cert = </config/dovecot/common/certs/dovecot.pem ssl_client_ca_file = /config/solr-certs/solr-ssl.pem ssl_key = # hidden, use -P to show it userdb { args = /config/dovecot/dovecot/dovecot-ldap.conf driver = ldap } protocol lmtp { mail_plugins = quota mail_log notify sieve virtual fts fts_solr } protocol lda { mail_plugins = quota mail_log notify sieve virtual } protocol imap { mail_plugins = quota imap_quota mail_log notify virtual fts fts_solr } protocol pop3 { mail_plugins = quota mail_log notify virtual pop3_uidl_format = UID%u-%v }
participants (1)
-
Domenico Pastore