replication Error with wrong file lock
Hi there,
I have setup a replication between two dovecot servers. It seems working:
# doveadm replicator status '*' && doveadm replicator dsync-status && doveadm replicator status username priority fast sync full sync success sync failed ******************** none 00:59:22 18:50:17 18:21:25 - ********************low 01:54:26 18:57:58 - y ********************none 21:42:55 21:47:55 21:36:24 - ******************** none 21:14:57 21:51:07 21:33:13 - ********************none 21:13:52 21:51:04 21:17:57 - ********************none 00:04:23 01:29:24 - y ********************none 02:34:15 21:56:23 02:34:15 - ******************** none 00:03:56 18:55:17 - y ********************none 01:18:42 01:18:42 19:18:46 - ********************none 21:20:04 21:24:46 21:43:49 - ********************none 00:05:13 00:09:36 21:47:55 - ********************none 00:16:50 18:55:17 18:45:57 - ********************none 00:04:23 18:55:17 38:07:24 y username type status - Not connected - Not connected - Not connected ********************normal Waiting for dsync to finish - Not connected Queued 'sync' requests 0 Queued 'high' requests 0 Queued 'low' requests 1 Queued 'failed' requests 0 Queued 'full resync' requests 0 Waiting 'failed' requests 3 Total number of known users 13
But on the one server, I found this errors repeating and this users are at the list above marked as failed:
Oct 18 09:41:08 dsync-local(1@tld.de): Error: Couldn't lock /srv/mail/mail_storage/tld.de/1/.dovecot-sync.lock: fcntl(/srv/mail/mail_storage/tld.de/1/.dovecot-sync.lock, write-lock, F_SETLKW) locking failed: Timed out after 30 seconds (WRITE lock held by pid 71613)
The directory shows:
# ls -la /srv/mail/mail_storage/celebrate.de/1/ | grep '\.dove' drwxrwxrwx 5 vpostfix vpostfix 4096 Oct 18 08:55 .dovecot -rw------- 2 vpostfix vpostfix 0 Oct 18 09:37 .dovecot-sync.lock -rwxrwxrwx 1 vpostfix vpostfix 912 Mar 20 2023 .dovecot.sieve.log -rwxrwxrwx 1 vpostfix vpostfix 275 Oct 11 00:00 .dovecot.svbin
So it seems, that there are more processes want accessing same locking file. But normally this and other files should not exist there:
# ls -la /srv/mail/mail_storage/celebrate.de/fk/ | grep '\.index' -rw-rw-rw- 1 vpostfix vpostfix 194008 Oct 17 12:26 dovecot.index -rwxrwxrwx 1 vpostfix vpostfix 16890796 Oct 17 14:20 dovecot.index.cache -rw-rw-rw- 1 vpostfix vpostfix 7420 Oct 17 14:04 dovecot.index.log -rwxrwxrwx 1 vpostfix vpostfix 32824 Oct 17 11:46 dovecot.index.log.2 -rwxrwxrwx 1 vpostfix vpostfix 5752 Oct 9 05:14 dovecot.list.index -rwxrwxrwx 1 vpostfix vpostfix 7556 Oct 9 09:32 dovecot.list.index.log
In my config, I have set: mail_location = maildir:~:VOLATILEDIR=/dev/shm/dovecot/%2.256Nu/%u:INDEX=/opt/dovecot/%2.256Nu/%u:ITERINDEX
But below /dev/shm/dovecot and /opt/dovecot, directories and files are generated too
Following my config and hoping for some useful hints:
# dovecot -n # 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.24 (124e06aa) # OS: Linux 5.15.149-1-pve x86_64 CentOS Linux release 7.9.2009 (Core) # Hostname: host.tld.de disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it first_valid_uid = 1000 imap_id_send = lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lmtp_save_to_detail_mailbox = yes log_path = /var/log/dovecot.log mail_fsync = always mail_full_filesystem_access = yes mail_gid = 1000 mail_home = /srv/mail/mail_storage/%d/%n mail_location = maildir:~:VOLATILEDIR=/dev/shm/dovecot/%2.256Nu/%u:INDEX=/opt/dovecot/%2.256Nu/%u:ITERINDEX mail_plugins = " notify replication" mail_privileged_group = vpostfix mail_uid = 1000 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 vacation-seconds mbox_write_locks = fcntl mmap_disable = yes namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Spam { auto = subscribe special_use = \Junk } mailbox Trash { special_use = \Trash } prefix = } passdb { args = scheme=CRYPT username_format=%u /etc/dovecot/users driver = passwd-file } plugin { mail_replica = tcp:192.168.130.192:4711 recipient_delimiter = + replication_full_sync_interval = 1 hour replication_sync_timeout = 10 sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = /etc/dovecot/spam-global.sieve sieve_extensions = +vacation-seconds sieve_vacation_default_period = 1d sieve_vacation_max_period = 30d sieve_vacation_min_period = 0 sieve_vacation_use_original_recipient = yes }
protocols = imap pop3 lmtp sieve service aggregator { fifo_listener replication-notify-fifo { mode = 0666 user = vpostfix } unix_listener replication-notify { mode = 0666 user = vpostfix } } service auth { inet_listener { address = 192.168.130.191 port = 3659 } unix_listener /var/spool/postfix/private/auth { group = vpostfix mode = 0666 user = vpostfix } unix_listener auth-userdb { group = vpostfix mode = 0600 user = vpostfix } } service config { unix_listener config { user = vpostfix } } service doveadm { inet_listener { port = 4711 } user = vpostfix } service imap-login { process_min_avail = 1 service_count = 1 } service lmtp { inet_listener lmtp { address = 192.168.130.191 port = 24 } } service managesieve-login { inet_listener sieve { port = 4190 } } service replicator { process_min_avail = 1 unix_listener replicator-doveadm { mode = 0666 user = vpostfix } } ssl_cert =
Update about the dovecot-version: both server running now with 2.3.17 - problem on the only one server still present.
Am 18.10.2024 um 09:55 schrieb Frank Kirschner via dovecot:
Hi there,
I have setup a replication between two dovecot servers. It seems working:
# doveadm replicator status '*' && doveadm replicator dsync-status && doveadm replicator status username priority fast sync full sync success sync failed ******************** none 00:59:22 18:50:17 18:21:25 - ********************low 01:54:26 18:57:58 - y ********************none 21:42:55 21:47:55 21:36:24 - ******************** none 21:14:57 21:51:07 21:33:13 - ********************none 21:13:52 21:51:04 21:17:57 - ********************none 00:04:23 01:29:24 - y ********************none 02:34:15 21:56:23 02:34:15 - ******************** none 00:03:56 18:55:17 - y ********************none 01:18:42 01:18:42 19:18:46 - ********************none 21:20:04 21:24:46 21:43:49 - ********************none 00:05:13 00:09:36 21:47:55 - ********************none 00:16:50 18:55:17 18:45:57 - ********************none 00:04:23 18:55:17 38:07:24 y username type status - Not connected - Not connected - Not connected ********************normal Waiting for dsync to finish - Not connected Queued 'sync' requests 0 Queued 'high' requests 0 Queued 'low' requests 1 Queued 'failed' requests 0 Queued 'full resync' requests 0 Waiting 'failed' requests 3 Total number of known users 13
But on the one server, I found this errors repeating and this users are at the list above marked as failed:
Oct 18 09:41:08 dsync-local(1@tld.de): Error: Couldn't lock /srv/mail/mail_storage/tld.de/1/.dovecot-sync.lock: fcntl(/srv/mail/mail_storage/tld.de/1/.dovecot-sync.lock, write-lock, F_SETLKW) locking failed: Timed out after 30 seconds (WRITE lock held by pid 71613)
The directory shows:
# ls -la /srv/mail/mail_storage/celebrate.de/1/ | grep '\.dove' drwxrwxrwx 5 vpostfix vpostfix 4096 Oct 18 08:55 .dovecot -rw------- 2 vpostfix vpostfix 0 Oct 18 09:37 .dovecot-sync.lock -rwxrwxrwx 1 vpostfix vpostfix 912 Mar 20 2023 .dovecot.sieve.log -rwxrwxrwx 1 vpostfix vpostfix 275 Oct 11 00:00 .dovecot.svbin
So it seems, that there are more processes want accessing same locking file. But normally this and other files should not exist there:
# ls -la /srv/mail/mail_storage/celebrate.de/fk/ | grep '\.index' -rw-rw-rw- 1 vpostfix vpostfix 194008 Oct 17 12:26 dovecot.index -rwxrwxrwx 1 vpostfix vpostfix 16890796 Oct 17 14:20 dovecot.index.cache -rw-rw-rw- 1 vpostfix vpostfix 7420 Oct 17 14:04 dovecot.index.log -rwxrwxrwx 1 vpostfix vpostfix 32824 Oct 17 11:46 dovecot.index.log.2 -rwxrwxrwx 1 vpostfix vpostfix 5752 Oct 9 05:14 dovecot.list.index -rwxrwxrwx 1 vpostfix vpostfix 7556 Oct 9 09:32 dovecot.list.index.log
In my config, I have set: mail_location = maildir:~:VOLATILEDIR=/dev/shm/dovecot/%2.256Nu/%u:INDEX=/opt/dovecot/%2.256Nu/%u:ITERINDEX
But below /dev/shm/dovecot and /opt/dovecot, directories and files are generated too
Following my config and hoping for some useful hints:
# dovecot -n # 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.24 (124e06aa) # OS: Linux 5.15.149-1-pve x86_64 CentOS Linux release 7.9.2009 (Core) # Hostname: host.tld.de disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it first_valid_uid = 1000 imap_id_send = lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lmtp_save_to_detail_mailbox = yes log_path = /var/log/dovecot.log mail_fsync = always mail_full_filesystem_access = yes mail_gid = 1000 mail_home = /srv/mail/mail_storage/%d/%n mail_location = maildir:~:VOLATILEDIR=/dev/shm/dovecot/%2.256Nu/%u:INDEX=/opt/dovecot/%2.256Nu/%u:ITERINDEX mail_plugins = " notify replication" mail_privileged_group = vpostfix mail_uid = 1000 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 vacation-seconds mbox_write_locks = fcntl mmap_disable = yes namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Spam { auto = subscribe special_use = \Junk } mailbox Trash { special_use = \Trash } prefix = } passdb { args = scheme=CRYPT username_format=%u /etc/dovecot/users driver = passwd-file } plugin { mail_replica = tcp:192.168.130.192:4711 recipient_delimiter = + replication_full_sync_interval = 1 hour replication_sync_timeout = 10 sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = /etc/dovecot/spam-global.sieve sieve_extensions = +vacation-seconds sieve_vacation_default_period = 1d sieve_vacation_max_period = 30d sieve_vacation_min_period = 0 sieve_vacation_use_original_recipient = yes }
protocols = imap pop3 lmtp sieve service aggregator { fifo_listener replication-notify-fifo { mode = 0666 user = vpostfix } unix_listener replication-notify { mode = 0666 user = vpostfix } } service auth { inet_listener { address = 192.168.130.191 port = 3659 } unix_listener /var/spool/postfix/private/auth { group = vpostfix mode = 0666 user = vpostfix } unix_listener auth-userdb { group = vpostfix mode = 0600 user = vpostfix } } service config { unix_listener config { user = vpostfix } } service doveadm { inet_listener { port = 4711 } user = vpostfix } service imap-login { process_min_avail = 1 service_count = 1 } service lmtp { inet_listener lmtp { address = 192.168.130.191 port = 24 } } service managesieve-login { inet_listener sieve { port = 4190 } } service replicator { process_min_avail = 1 unix_listener replicator-doveadm { mode = 0666 user = vpostfix } } ssl_cert =
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
Hi!
2.3.17 is rather old version, please try with 2.3.21.1. You can find it from https://repo.dovecot.org/
Aki
On 18/10/2024 15:28 EEST Frank Kirschner via dovecot dovecot@dovecot.org wrote:
Update about the dovecot-version: both server running now with 2.3.17 - problem on the only one server still present.
Am 18.10.2024 um 09:55 schrieb Frank Kirschner via dovecot:
Hi there,
I have setup a replication between two dovecot servers. It seems working:
# doveadm replicator status '*' && doveadm replicator dsync-status && doveadm replicator status username priority fast sync full sync success sync failed ******************** none 00:59:22 18:50:17 18:21:25 - ********************low 01:54:26 18:57:58 - y ********************none 21:42:55 21:47:55 21:36:24 - ******************** none 21:14:57 21:51:07 21:33:13 - ********************none 21:13:52 21:51:04 21:17:57 - ********************none 00:04:23 01:29:24 - y ********************none 02:34:15 21:56:23 02:34:15 - ******************** none 00:03:56 18:55:17 - y ********************none 01:18:42 01:18:42 19:18:46 - ********************none 21:20:04 21:24:46 21:43:49 - ********************none 00:05:13 00:09:36 21:47:55 - ********************none 00:16:50 18:55:17 18:45:57 - ********************none 00:04:23 18:55:17 38:07:24 y username type status - Not connected - Not connected - Not connected ********************normal Waiting for dsync to finish - Not connected Queued 'sync' requests 0 Queued 'high' requests 0 Queued 'low' requests 1 Queued 'failed' requests 0 Queued 'full resync' requests 0 Waiting 'failed' requests 3 Total number of known users 13
But on the one server, I found this errors repeating and this users are at the list above marked as failed:
Oct 18 09:41:08 dsync-local(1@tld.de): Error: Couldn't lock /srv/mail/mail_storage/tld.de/1/.dovecot-sync.lock: fcntl(/srv/mail/mail_storage/tld.de/1/.dovecot-sync.lock, write-lock, F_SETLKW) locking failed: Timed out after 30 seconds (WRITE lock held by pid 71613)
The directory shows:
# ls -la /srv/mail/mail_storage/celebrate.de/1/ | grep '\.dove' drwxrwxrwx 5 vpostfix vpostfix 4096 Oct 18 08:55 .dovecot -rw------- 2 vpostfix vpostfix 0 Oct 18 09:37 .dovecot-sync.lock -rwxrwxrwx 1 vpostfix vpostfix 912 Mar 20 2023 .dovecot.sieve.log -rwxrwxrwx 1 vpostfix vpostfix 275 Oct 11 00:00 .dovecot.svbin
So it seems, that there are more processes want accessing same locking file. But normally this and other files should not exist there:
# ls -la /srv/mail/mail_storage/celebrate.de/fk/ | grep '\.index' -rw-rw-rw- 1 vpostfix vpostfix 194008 Oct 17 12:26 dovecot.index -rwxrwxrwx 1 vpostfix vpostfix 16890796 Oct 17 14:20 dovecot.index.cache -rw-rw-rw- 1 vpostfix vpostfix 7420 Oct 17 14:04 dovecot.index.log -rwxrwxrwx 1 vpostfix vpostfix 32824 Oct 17 11:46 dovecot.index.log.2 -rwxrwxrwx 1 vpostfix vpostfix 5752 Oct 9 05:14 dovecot.list.index -rwxrwxrwx 1 vpostfix vpostfix 7556 Oct 9 09:32 dovecot.list.index.log
In my config, I have set: mail_location = maildir:~:VOLATILEDIR=/dev/shm/dovecot/%2.256Nu/%u:INDEX=/opt/dovecot/%2.256Nu/%u:ITERINDEX
But below /dev/shm/dovecot and /opt/dovecot, directories and files are generated too
Following my config and hoping for some useful hints:
# dovecot -n # 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.24 (124e06aa) # OS: Linux 5.15.149-1-pve x86_64 CentOS Linux release 7.9.2009 (Core) # Hostname: host.tld.de disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it first_valid_uid = 1000 imap_id_send = lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lmtp_save_to_detail_mailbox = yes log_path = /var/log/dovecot.log mail_fsync = always mail_full_filesystem_access = yes mail_gid = 1000 mail_home = /srv/mail/mail_storage/%d/%n mail_location = maildir:~:VOLATILEDIR=/dev/shm/dovecot/%2.256Nu/%u:INDEX=/opt/dovecot/%2.256Nu/%u:ITERINDEX mail_plugins = " notify replication" mail_privileged_group = vpostfix mail_uid = 1000 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 vacation-seconds mbox_write_locks = fcntl mmap_disable = yes namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Spam { auto = subscribe special_use = \Junk } mailbox Trash { special_use = \Trash } prefix = } passdb { args = scheme=CRYPT username_format=%u /etc/dovecot/users driver = passwd-file } plugin { mail_replica = tcp:192.168.130.192:4711 recipient_delimiter = + replication_full_sync_interval = 1 hour replication_sync_timeout = 10 sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = /etc/dovecot/spam-global.sieve sieve_extensions = +vacation-seconds sieve_vacation_default_period = 1d sieve_vacation_max_period = 30d sieve_vacation_min_period = 0 sieve_vacation_use_original_recipient = yes }
protocols = imap pop3 lmtp sieve service aggregator { fifo_listener replication-notify-fifo { mode = 0666 user = vpostfix } unix_listener replication-notify { mode = 0666 user = vpostfix } } service auth { inet_listener { address = 192.168.130.191 port = 3659 } unix_listener /var/spool/postfix/private/auth { group = vpostfix mode = 0666 user = vpostfix } unix_listener auth-userdb { group = vpostfix mode = 0600 user = vpostfix } } service config { unix_listener config { user = vpostfix } } service doveadm { inet_listener { port = 4711 } user = vpostfix } service imap-login { process_min_avail = 1 service_count = 1 } service lmtp { inet_listener lmtp { address = 192.168.130.191 port = 24 } } service managesieve-login { inet_listener sieve { port = 4190 } } service replicator { process_min_avail = 1 unix_listener replicator-doveadm { mode = 0666 user = vpostfix } } ssl_cert =
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
participants (2)
-
Aki Tuomi
-
Frank Kirschner