Dovecot dsync not replicating ".dovecot.sieve -> .sieve/managesieve.sieve" / setactive

Martin Štefany martin at stefany.eu
Thu Feb 12 14:47:27 UTC 2015


Hello,

I've ran into problem with Dovecot and dsync replication. Everything 
works perfectly, including replication of sieve scripts, except fact 
that if user activates the 'managesieve' ruleset (I'm using currently 
Roundcubemail) on "mail1" host, it wouldn't be activated on "mail2" 
host, by creating symlink ".dovecot.sieve -> .sieve/managesieve.sieve". 
I've also tried to use 'replication_full_sync_interval', but symlink is 
not created anyway.

I found 2 references already for this problem, but none came to any 
conclusion:

http://dovecot.org/pipermail/dovecot/2014-June/096650.html
http://www.dovecot.org/list/dovecot/2014-September/097857.html


Here is the output from 'doveconf -n' from both hosts for reference ::

mail1 ::
# 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-123.20.1.el7.x86_64 x86_64 CentOS Linux release 
7.0.1406 (Core)
auth_cache_size = 5 M
auth_debug = yes
auth_default_realm = example.com
auth_gssapi_hostname = mail.example.com
auth_krb5_keytab = /etc/dovecot/dovecot.keytab
auth_mechanisms = plain gssapi
auth_realms = example.com
auth_verbose = yes
doveadm_password = <secret>
lmtp_save_to_detail_mailbox = yes
mail_debug = yes
mail_location = maildir:~/Maildir
mail_plugins = " fts fts_lucene notify quota replication virtual zlib"
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 ihave
namespace inbox {
   inbox = yes
   location =
   mailbox All {
     auto = create
     special_use = \All
   }
   mailbox Archives {
     auto = subscribe
     special_use = \Archive
   }
   mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox Junk {
     auto = subscribe
     special_use = \Junk
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox Templates {
     auto = subscribe
   }
   mailbox Trash {
     auto = subscribe
     special_use = \Trash
   }
   prefix =
   separator = /
   type = private
}
passdb {
   args = /etc/dovecot/dovecot-ldap-passdb.conf.ext
   driver = ldap
}
plugin {
   fts = lucene
   fts_autoindex = yes
   fts_lucene = whitespace_chars=@.
   mail_replica = tcps:mail2.example.com:10993
   quota = maildir:User quota
   quota_rule = *:storage=4GB
   quota_rule2 = Trash:storage=+50MB
   sieve = ~/.dovecot.sieve
   sieve_after = /srv/sieve/after.d/
   sieve_before = /srv/sieve/before.d/
   sieve_default = /srv/sieve/default.d/dovecot.sieve
   sieve_dir = ~/.sieve
   sieve_global_dir = /srv/sieve/
   zlib_save = gz
   zlib_save_level = 9
}
postmaster_address = postmaster at example.com
protocols = imap lmtp sieve
service aggregator {
   fifo_listener replication-notify-fifo {
     group = vmail
     mode = 0660
     user = vmail
   }
   unix_listener replication-notify {
     group = vmail
     mode = 0660
     user = vmail
   }
}
service auth {
   unix_listener /var/spool/postfix/private/dovecot-auth {
     group = postfix
     mode = 0660
     user = postfix
   }
}
service doveadm {
   inet_listener {
     port = 10993
     ssl = yes
   }
}
service imap-login {
   inet_listener imaps {
     port = 0
   }
}
service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
     group = postfix
     mode = 0660
     user = postfix
   }
}
service managesieve-login {
   inet_listener sieve {
     port = 4190
   }
   service_count = 1
}
service replicator {
   process_min_avail = 1
   unix_listener replicator-doveadm {
     group = vmail
     mode = 0660
     user = vmail
   }
}
ssl_ca = </etc/ipa/ca.crt
ssl_cert = </etc/pki/tls/certs/dovecot.pem
ssl_cipher_list = 
EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
ssl_client_ca_file = /etc/ipa/ca.crt
ssl_client_cert = </etc/pki/tls/certs/dovecot.pem
ssl_client_key = </etc/pki/tls/private/dovecot.key
ssl_key = </etc/pki/tls/private/dovecot.key
ssl_parameters_regenerate = 1 weeks
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv2 !SSLv3
userdb {
   args = /etc/dovecot/dovecot-ldap-userdb.conf.ext
   driver = ldap
   override_fields = gid=vmail home=/srv/vmail/example.com/%n
}
verbose_ssl = yes
protocol lmtp {
   mail_plugins = " fts fts_lucene notify quota replication virtual zlib 
sieve"
}
protocol imap {
   mail_plugins = " fts fts_lucene notify quota replication virtual zlib 
imap_quota imap_zlib"
}


mail2 ::
# 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-123.20.1.el7.x86_64 x86_64 CentOS Linux release 
7.0.1406 (Core)
auth_cache_size = 5 M
auth_debug = yes
auth_default_realm = example.com
auth_gssapi_hostname = mail.example.com
auth_krb5_keytab = /etc/dovecot/dovecot.keytab
auth_mechanisms = plain gssapi
auth_realms = example.com
auth_verbose = yes
doveadm_password = <secret>
lmtp_save_to_detail_mailbox = yes
mail_debug = yes
mail_location = maildir:~/Maildir
mail_plugins = " fts fts_lucene notify quota replication virtual zlib"
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 ihave
namespace inbox {
   inbox = yes
   location =
   mailbox All {
     auto = create
     special_use = \All
   }
   mailbox Archives {
     auto = subscribe
     special_use = \Archive
   }
   mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox Junk {
     auto = subscribe
     special_use = \Junk
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox Templates {
     auto = subscribe
   }
   mailbox Trash {
     auto = subscribe
     special_use = \Trash
   }
   prefix =
   separator = /
   type = private
}
passdb {
   args = /etc/dovecot/dovecot-ldap-passdb.conf.ext
   driver = ldap
}
plugin {
   fts = lucene
   fts_autoindex = yes
   fts_lucene = whitespace_chars=@.
   mail_replica = tcps:mail1.example.com:10993
   quota = maildir:User quota
   quota_rule = *:storage=4GB
   quota_rule2 = Trash:storage=+50MB
   sieve = ~/.dovecot.sieve
   sieve_after = /srv/sieve/after.d/
   sieve_before = /srv/sieve/before.d/
   sieve_default = /srv/sieve/default.d/dovecot.sieve
   sieve_dir = ~/.sieve
   sieve_global_dir = /srv/sieve/
   zlib_save = gz
   zlib_save_level = 9
}
postmaster_address = postmaster at example.com
protocols = imap lmtp sieve
service aggregator {
   fifo_listener replication-notify-fifo {
     group = vmail
     mode = 0660
     user = vmail
   }
   unix_listener replication-notify {
     group = vmail
     mode = 0660
     user = vmail
   }
}
service auth {
   unix_listener /var/spool/postfix/private/dovecot-auth {
     group = postfix
     mode = 0660
     user = postfix
   }
}
service doveadm {
   inet_listener {
     port = 10993
     ssl = yes
   }
}
service imap-login {
   inet_listener imaps {
     port = 0
   }
}
service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
     group = postfix
     mode = 0660
     user = postfix
   }
}
service managesieve-login {
   inet_listener sieve {
     port = 4190
   }
   service_count = 1
}
service replicator {
   process_min_avail = 1
   unix_listener replicator-doveadm {
     group = vmail
     mode = 0660
     user = vmail
   }
}
ssl_ca = </etc/ipa/ca.crt
ssl_cert = </etc/pki/tls/certs/dovecot.pem
ssl_cipher_list = 
EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
ssl_client_ca_file = /etc/ipa/ca.crt
ssl_client_cert = </etc/pki/tls/certs/dovecot.pem
ssl_client_key = </etc/pki/tls/private/dovecot.key
ssl_key = </etc/pki/tls/private/dovecot.key
ssl_parameters_regenerate = 1 weeks
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv2 !SSLv3
userdb {
   args = /etc/dovecot/dovecot-ldap-userdb.conf.ext
   driver = ldap
   override_fields = gid=vmail home=/srv/vmail/example.com/%n
}
verbose_ssl = yes
protocol lmtp {
   mail_plugins = " fts fts_lucene notify quota replication virtual zlib 
sieve"
}
protocol imap {
   mail_plugins = " fts fts_lucene notify quota replication virtual zlib 
imap_quota imap_zlib"
}



And reference directory structure ::
[root at mail1 ~]# tree -a /srv
/srv
├── sieve
│   ├── after.d
│   ├── before.d
│   │   ├── spam.sieve
│   │   └── spam.svbin
│   └── default.d
└── vmail
     └── example.com
         └── <user>
             ├── .dovecot.lda-dupes
             ├── .dovecot.sieve -> .sieve/managesieve.sieve
             ├── .dovecot.svbin
             ├── Maildir
             │   ├── .All
             │   │   ├── cur
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── .Archives
             │   │   ├── cur
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── cur
             │   ├── dovecot.index.cache
             │   ├── dovecot.index.log
             │   ├── dovecot.index.thread
             │   ├── dovecot-keywords
             │   ├── dovecot.mailbox.log
             │   ├── dovecot-uidlist
             │   ├── dovecot-uidvalidity
             │   ├── dovecot-uidvalidity.54dbb6f0
             │   ├── .Drafts
             │   │   ├── cur
             │   │   ├── dovecot.index.cache
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── .Junk
             │   │   ├── cur
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── lucene-indexes
             │   │   ├── _k.cfs
             │   │   ├── segments_17
             │   │   └── segments.gen
             │   ├── maildirfolder
             │   ├── maildirsize
             │   ├── new
             │   ├── .Sent
             │   │   ├── cur
             │   │   ├── dovecot.index.cache
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── subscriptions
             │   ├── .Templates
             │   │   ├── cur
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── tmp
             │   └── .Trash
             │       ├── cur
             │       ├── dovecot.index.log
             │       ├── dovecot-uidlist
             │       ├── maildirfolder
             │       ├── new
             │       └── tmp
             └── .sieve
                 ├── managesieve.sieve
                 └── tmp


[root at mail2 ~]# tree -a /srv
/srv
├── sieve
│   ├── after.d
│   ├── before.d
│   │   ├── spam.sieve
│   │   └── spam.svbin
│   └── default.d
└── vmail
     └── example.com
         └── <user>
             ├── Maildir
             │   ├── .All
             │   │   ├── cur
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── .Archives
             │   │   ├── cur
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── cur
             │   ├── dovecot.index.cache
             │   ├── dovecot.index.log
             │   ├── dovecot-keywords
             │   ├── dovecot.mailbox.log
             │   ├── dovecot-uidlist
             │   ├── dovecot-uidvalidity
             │   ├── dovecot-uidvalidity.54dbb6f5
             │   ├── .Drafts
             │   │   ├── cur
             │   │   ├── dovecot.index.cache
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── .Junk
             │   │   ├── cur
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── lucene-indexes
             │   │   ├── _k.cfs
             │   │   ├── segments_17
             │   │   └── segments.gen
             │   ├── maildirfolder
             │   ├── maildirsize
             │   ├── new
             │   ├── .Sent
             │   │   ├── cur
             │   │   ├── dovecot.index.cache
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── subscriptions
             │   ├── .Templates
             │   │   ├── cur
             │   │   ├── dovecot.index.log
             │   │   ├── dovecot-uidlist
             │   │   ├── maildirfolder
             │   │   ├── new
             │   │   └── tmp
             │   ├── tmp
             │   └── .Trash
             │       ├── cur
             │       ├── dovecot.index.log
             │       ├── dovecot-uidlist
             │       ├── maildirfolder
             │       ├── new
             │       └── tmp
             └── .sieve
                 ├── managesieve.sieve
                 └── tmp

Thanks a lot for Dovecot anyway! ;)

Martin



More information about the dovecot mailing list