replikation .dovecot-box-sync.lock

Frank Kirschner fk at celebrate.de
Do Okt 17 12:42:34 CEST 2024


Hallo liebe Mitglieder der Liste,

Ich habe eine Replikation zu einem Server aufgebaut. Der neue Server hat 
ein komplett leeres User Storage, welches per NFS angebunden ist.
Die Replikation scheint augenscheinlich zu funktionieren, auf dem neuen 
Server erscheinen die entsprechenden Dateien im maildir Format.

# doveadm replicator status '*' && doveadm replicator dsync-status
username                               priority fast sync full sync 
success sync failed
1 at tld.de                                low      01:28:50 21:55:19  
02:31:39     y
2 at tld.delow      01:21:42  21:55:28  -            y
3 at tld.denone     00:40:22  00:45:22  00:33:51     -
4 at tld.denone     00:12:24  00:48:34  00:30:40     -
5 at tld.denone     00:11:19  00:48:31  00:15:24     -
6 at tld.denone     00:03:31  04:28:43  -            y
7 at tld.denone     00:53:50  00:53:50  01:03:57     -
8 at tld.delow      01:28:50  21:56:15  -            y
9 at tld.denone     04:15:28  04:15:28  21:51:47     -
10 at tld.denone     00:17:31  00:22:13  00:41:16     -
11 at tld.denone     00:02:47  02:45:13  00:45:22     -
12 at tld.denone     00:03:31  21:55:19  02:50:30     y
13 at tld.denone     00:03:31  21:55:19  17:04:51     y
username                                                type status
1 at tld.denormal Waiting for dsync to finish
                                                         - Not connected
3 at tld.denormal Waiting for dsync to finish
                                                         - Not connected
                                                         - Not connected
7 at tld.denormal Waiting for dsync to finish
                                                         - Not connected
                                                         - Not connected
                                                         - Not connected


Der neue Server hat aktuell eine Load von ca. 7
Bei genauerer Suche nach dem Grund, fällt mir das auf:

# ps aux | grep " D "
vpostfix  275393  0.0  0.1  52036  9376 ?        D    10:44 0:05 
dovecot/doveadm-server
vpostfix  275395  0.0  0.1  51276  8668 ?        D    10:44 0:03 
dovecot/doveadm-server
vpostfix  275547  0.0  0.1  51924  9032 ?        D    10:45 0:04 
dovecot/doveadm-server
vpostfix  276809  0.0  0.1  58768 15512 ?        D    10:52 0:05 
dovecot/doveadm-server

Der Grund für den Status D scheint von dem Aufruf zu kommen:
doveadm: Error: Failed to access mailbox dovecot-box-sync.lock: 
stat(/srv/mail/mail_storage2/tld.de/1/mail/.dovecot-box-sync.lock/tmp) 
failed: Not a directory

Stellt man das von der Konsole aus nach:
# stat 
/srv/mail/mail_storage2/celebrate.de/fk/mail/.dovecot-box-sync.lock/tmp 
stat: cannot statx 
'/srv/mail/mail_storage2/tld.de/1/mail/.dovecot-box-sync.lock/tmp': 
Permission denied

Auf dem NFS-NAS sieht man:
# ls -la /mnt/raid5array1/mail_storage2/tld.de/fk/mail/.dovecot*
-rw-------  1 vpostfix  vpostfix  0 Oct 17 11:06 
/mnt/raid5array1/mail_storage2/celebrate.de/1/mail/.dovecot-box-sync.lock

^- man sieht, dass .dovecot-box-sync.lock eine Datei und kein 
Verzeichnis ist, darum kann auch /tmp darin nicht existieren

Was läuft hier schief? Nachfolgend die Konfiguration des Servers:
# dovecot -n
# 2.3.16 (7e2e900c1a): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.16 (09c29328)
# OS: Linux 5.15.149-1-pve x86_64 AlmaLinux release 8.10 (Cerulean Leopard)
# Hostname: 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
login_greeting =  ready.
mail_debug = yes
mail_fsync = always
mail_full_filesystem_access = yes
mail_gid = 1000
mail_home = /srv/mail/mail_storage2/%d/%n
mail_location = maildir:~/mail
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.191:4711
   recipient_delimiter = +
   replication_full_sync_interval = 1 day
   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
}
postmaster_address = xxx at tld.de
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.192
     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.192
     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 = </etc/dehydrated/certs/tld.de/fullchain.pem
ssl_cipher_list = PROFILE=SYSTEM
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
   args = username_format=%u /etc/dovecot/users
   driver = passwd-file
}
protocol lmtp {
   mail_plugins = " notify replication sieve"
}
protocol lda {
   mail_plugins = " notify replication sieve"
}
protocol imap {
   mail_max_userip_connections = 10
   mail_plugins = " notify replication quota imap_quota"
}



-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://listen.jpberlin.de/pipermail/dovecot/attachments/20241017/c2dbc583/attachment.htm>


Mehr Informationen über die Mailingliste Dovecot