Hello, I've set up dsync replication on 2 nodes and mail replication is working flawlessly, however it seems that replicating the sieve scripts won't work. Managesieve and sieve filter in gerneral seems to work on both nodes, however in order to have a synchronized state, I have to log onto both nodes with managesieve and save & activate the script. What's funny about this is that only deactivating the active sieve script (which removes the symlink) replicates from one node to the other (it's gone on both nodes then), but saving a new sieve script and activating it does not work. I cannot find anything on the internet about this problem (only old threads where an old commit should've fixed it), so I am asking here. Enabling mail_debug = yes and sieve_trace_debug = yes does not print anything useful here, the only thing I spotted was after creating and deleting the script afterwards, the other node complained about not being able to find the script: dovecot[15942]: doveadm: Debug: sieve: file script: File `/var/vmail/mcl.gg/mail/sieve/unnamed.sieve' not found dovecot[15942]: doveadm: Debug: doveadm-sieve: Value missing for key `vendor/vendor.dovecot/pvt/server/sieve/files/unnamed' (last change: 2019-03-24 15:24:27) All the messages about "Debug: sieve: file storage:" are correct. I am using Dovecot 2.3.5 (513208660) with Pigeonhole version 0.5.4 (60b0f48d) on Arch Linux 4.20.16.a-1-hardened. I've attached both node's doveconf -n. Kind regards, Marcel Menzel -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://dovecot.org/pipermail/dovecot/attachments/20190324/601d9e7f/attachment-0001.html> -------------- next part -------------- # 2.3.5 (513208660): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.4 (60b0f48d) # OS: Linux 4.20.16.a-1-hardened x86_64 Arch Linux # Hostname: node1 auth_verbose = yes dict { quota = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext } doveadm_password = # hidden, use -P to show it first_valid_uid = 8 imap_idle_notify_interval = 29 mins last_valid_uid = 8 lmtp_rcpt_check_quota = yes login_greeting = Pedo mellon a minno login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k mail_attribute_dict = file:/var/vmail/%d/%n/dovecot-attributes mail_debug = yes mail_gid = mail mail_home = /var/vmail/%d/%n mail_location = maildir:~ mail_plugins = quota old_stats notify replication listescape mail_privileged_group = mail mail_uid = 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 mbox_lock_timeout = 1 mins mbox_write_locks = fcntl namespace inbox { inbox = yes location mailbox Archief { special_use = \Archive } mailbox Archiv { special_use = \Archive } mailbox Archive { auto = subscribe special_use = \Archive } mailbox Archives { special_use = \Archive } mailbox Arquivo { special_use = \Archive } mailbox Arquivos { special_use = \Archive } mailbox Concepten { special_use = \Drafts } mailbox "Deleted Items" { special_use = \Trash } mailbox "Deleted Messages" { special_use = \Trash } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Entw?rfe { special_use = \Drafts } mailbox Enviados { special_use = \Sent } mailbox "Gel?schte Objekte" { special_use = \Trash } mailbox Gesendet { special_use = \Sent } mailbox "Gesendete Objekte" { special_use = \Sent } mailbox "Itens Enviados" { special_use = \Sent } mailbox "Itens Exclu?dos" { special_use = \Trash } mailbox "Itens Excluidos" { special_use = \Trash } mailbox Junk-E-Mail { special_use = \Junk } mailbox Junk { auto = subscribe autoexpunge = 30 days special_use = \Junk } mailbox "Junk E-Mail" { special_use = \Junk } mailbox Lixeira { special_use = \Trash } mailbox "Lixo Eletr?nico" { special_use = \Junk } mailbox "Ongewenste e-mail" { special_use = \Junk } mailbox Papierkorb { special_use = \Trash } mailbox Prullenbak { special_use = \Trash } mailbox Rascunhos { special_use = \Drafts } mailbox Rubbish { special_use = \Trash } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Items" { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Spam { special_use = \Junk } mailbox Trash { auto = subscribe autoexpunge = 120 days special_use = \Trash } mailbox "Verwijderde items" { special_use = \Trash } mailbox Verzonden { special_use = \Sent } mailbox "Verzonden items" { special_use = \Sent } prefix separator = / } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { listescape_char = %% mail_replica = tcp:10.5.0.2:12345 old_stats_refresh = 30 secs old_stats_track_cmds = yes quota = dict:User quota::proxy::quota quota_grace = 10%% quota_rule2 = Trash:storage=+100M quota_status_nouser = DUNNO quota_status_success = DUNNO sieve = file:~/sieve;active=~/dovecot.sieve sieve_after = /var/vmail/global.sieve sieve_trace_debug = yes } protocols = imap lmtp sieve service aggregator { fifo_listener replication-notify-fifo { mode = 0666 user = mail } unix_listener replication-notify { mode = 0666 user = mail } } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { group = dovecot mode = 0660 user = mail } } service dict { unix_listener dict { group = mail mode = 0660 } } service doveadm { inet_listener { port = 12345 } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0666 user = postfix } user = mail } service managesieve-login { inet_listener sieve { port = 4190 } } service old-stats { fifo_listener old-stats-mail { mode = 0600 user = mail } inet_listener { address = 127.0.0.1 port = 24242 } } service quota-status { client_limit = 1 executable = quota-status -p postfix unix_listener /var/spool/postfix/private/quota-status { group = postfix mode = 0660 user = postfix } } service replicator { process_min_avail = 1 unix_listener replicator-doveadm { mode = 0666 user = mail } } ssl = required ssl_cert = </etc/dehydrated/certs/mcl.gg/fullchain.pem ssl_cipher_list = ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA ssl_client_ca_dir = /etc/ssl/certs ssl_curve_list = X25519:P-256 ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_min_protocol = TLSv1.2 ssl_options = no_compression, no_ticket ssl_prefer_server_ciphers = yes userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } protocol lmtp { mail_plugins = quota old_stats notify replication listescape sieve } protocol imap { imap_metadata = yes mail_max_userip_connections = 25 mail_plugins = quota old_stats notify replication listescape imap_quota imap_sieve imap_old_stats } protocol sieve { mail_plugins = quota old_stats notify replication listescape replication } -------------- next part -------------- # 2.3.5 (513208660): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.4 (60b0f48d) # OS: Linux 4.20.16.a-1-hardened x86_64 # Hostname: node2 auth_verbose = yes dict { quota = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext } doveadm_password = # hidden, use -P to show it first_valid_uid = 8 imap_idle_notify_interval = 29 mins last_valid_uid = 8 lmtp_rcpt_check_quota = yes login_greeting = Pedo mellon a minno login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k mail_attribute_dict = file:/var/vmail/%d/%n/dovecot-attributes mail_debug = yes mail_gid = mail mail_home = /var/vmail/%d/%n mail_location = maildir:~ mail_plugins = quota old_stats notify replication listescape mail_privileged_group = mail mail_uid = 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 mbox_lock_timeout = 1 mins mbox_write_locks = fcntl namespace inbox { inbox = yes location mailbox Archief { special_use = \Archive } mailbox Archiv { special_use = \Archive } mailbox Archive { auto = subscribe special_use = \Archive } mailbox Archives { special_use = \Archive } mailbox Arquivo { special_use = \Archive } mailbox Arquivos { special_use = \Archive } mailbox Concepten { special_use = \Drafts } mailbox "Deleted Items" { special_use = \Trash } mailbox "Deleted Messages" { special_use = \Trash } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Entw?rfe { special_use = \Drafts } mailbox Enviados { special_use = \Sent } mailbox "Gel?schte Objekte" { special_use = \Trash } mailbox Gesendet { special_use = \Sent } mailbox "Gesendete Objekte" { special_use = \Sent } mailbox "Itens Enviados" { special_use = \Sent } mailbox "Itens Exclu?dos" { special_use = \Trash } mailbox "Itens Excluidos" { special_use = \Trash } mailbox Junk-E-Mail { special_use = \Junk } mailbox Junk { auto = subscribe autoexpunge = 30 days special_use = \Junk } mailbox "Junk E-Mail" { special_use = \Junk } mailbox Lixeira { special_use = \Trash } mailbox "Lixo Eletr?nico" { special_use = \Junk } mailbox "Ongewenste e-mail" { special_use = \Junk } mailbox Papierkorb { special_use = \Trash } mailbox Prullenbak { special_use = \Trash } mailbox Rascunhos { special_use = \Drafts } mailbox Rubbish { special_use = \Trash } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Items" { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Spam { special_use = \Junk } mailbox Trash { auto = subscribe autoexpunge = 120 days special_use = \Trash } mailbox "Verwijderde items" { special_use = \Trash } mailbox Verzonden { special_use = \Sent } mailbox "Verzonden items" { special_use = \Sent } prefix separator = / } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { listescape_char = %% mail_replica = tcp:10.5.0.1:12345 old_stats_refresh = 30 secs old_stats_track_cmds = yes quota = dict:User quota::proxy::quota quota_grace = 10%% quota_rule2 = Trash:storage=+100M quota_status_nouser = DUNNO quota_status_success = DUNNO sieve = file:~/sieve;active=~/dovecot.sieve sieve_after = /var/vmail/global.sieve sieve_trace_debug = yes } protocols = imap lmtp sieve service aggregator { fifo_listener replication-notify-fifo { mode = 0666 user = mail } unix_listener replication-notify { mode = 0666 user = mail } } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { group = dovecot mode = 0660 user = mail } } service dict { unix_listener dict { group = mail mode = 0660 } } service doveadm { inet_listener { port = 12345 } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0666 user = postfix } user = mail } service managesieve-login { inet_listener sieve { port = 4190 } } service old-stats { fifo_listener old-stats-mail { mode = 0600 user = mail } inet_listener { address = 127.0.0.1 port = 24242 } } service quota-status { client_limit = 1 executable = quota-status -p postfix unix_listener /var/spool/postfix/private/quota-status { group = postfix mode = 0660 user = postfix } } service replicator { process_min_avail = 1 unix_listener replicator-doveadm { mode = 0666 user = mail } } ssl = required ssl_cert = </etc/dehydrated/certs/mcl.gg/fullchain.pem ssl_cipher_list = ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA ssl_client_ca_dir = /etc/ssl/certs ssl_curve_list = X25519:P-256 ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_min_protocol = TLSv1.2 ssl_options = no_compression, no_ticket ssl_prefer_server_ciphers = yes userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } protocol lmtp { mail_plugins = quota old_stats notify replication listescape sieve } protocol imap { imap_metadata = yes mail_max_userip_connections = 25 mail_plugins = quota old_stats notify replication listescape imap_quota imap_sieve imap_old_stats } protocol sieve { mail_plugins = quota old_stats notify replication listescape replication }