Hello, Thanks for the advice. I have looked for the libs and here is the difference: Dovecot production env 2.2.10: /usr/lib/dovecot/modules/doveadm rw-r--r-- 1 root root 18560 Jan 9 2014 lib10_doveadm_acl_plugin.so -rw-r--r-- 1 root root 14256 Jan 9 2014 lib10_doveadm_expire_plugin.so -rw-r--r-- 1 root root 10232 Jan 9 2014 lib10_doveadm_quota_plugin.so -rw-r--r-- 1 root root 51352 Jan 9 2014 lib10_doveadm_sieve_plugin.so -rw-r--r-- 1 root root 14344 Jan 9 2014 lib20_doveadm_fts_plugin.so Dovecot new test env: /usr/dovecot/lib/dovecot/doveadm -rw-r--r-- 1 root root 140574 Jul 20 12:53 lib10_doveadm_acl_plugin.a -rwxr-xr-x 1 root root 1066 Jul 20 12:53 lib10_doveadm_acl_plugin.la -rwxr-xr-x 1 root root 98910 Jul 20 12:53 lib10_doveadm_acl_plugin.so -rw-r--r-- 1 root root 56108 Jul 20 12:53 lib10_doveadm_expire_plugin.a -rwxr-xr-x 1 root root 1087 Jul 20 12:53 lib10_doveadm_expire_plugin.la -rwxr-xr-x 1 root root 43879 Jul 20 12:53 lib10_doveadm_expire_plugin.so -rw-r--r-- 1 root root 97212 Jul 20 12:53 lib10_doveadm_quota_plugin.a -rwxr-xr-x 1 root root 1080 Jul 20 12:53 lib10_doveadm_quota_plugin.la -rwxr-xr-x 1 root root 63227 Jul 20 12:53 lib10_doveadm_quota_plugin.so -rw-r--r-- 1 root root 338560 Jul 20 12:53 lib10_doveadm_sieve_plugin.a -rwxr-xr-x 1 root root 1286 Jul 20 12:53 lib10_doveadm_sieve_plugin.la -rwxr-xr-x 1 root root 177604 Jul 20 12:53 lib10_doveadm_sieve_plugin.so -rw-r--r-- 1 root root 139748 Jul 20 12:53 lib20_doveadm_fts_plugin.a -rwxr-xr-x 1 root root 1066 Jul 20 12:53 lib20_doveadm_fts_plugin.la -rwxr-xr-x 1 root root 94615 Jul 20 12:53 lib20_doveadm_fts_plugin.so Also I have set the mail_log to debug as you have suggested and I see the following for users in the logs (with my "old" version): Jul 21 11:52:27 server1 dovecot: dsync-server(user1 at company.com): Debug: doveadm-sieve: Iterating Sieve mailbox attributes Jul 21 11:52:27 server1 dovecot: dsync-server(user1 at company.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Jul 21 11:52:27 server1 dovecot: dsync-server(user1 at company.com): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts. Jul 21 11:52:27 server1 dovecot: dsync-server(user1 at company.com): Debug: sieve-storage: using active sieve script path: /home/vmail/company.com/user1 at company.com//.dovecot.sieve Jul 21 11:52:27 server1 dovecot: dsync-server(user1 at company.com): Debug: sieve-storage: using sieve script storage directory: /home/vmail/company.com/user1 at company.com//sieve Jul 21 11:52:27 server1 dovecot: dsync-server(user1 at company.com): Debug: sieve-storage: using permissions from /home/vmail/company.com/user1 at company.com//sieve: mode=0700 gid=-1 Jul 21 11:52:27 server1 dovecot: dsync-server(user1 at company.com): Debug: sieve-storage: relative path to sieve storage in active link: sieve/ Jul 21 15:17:21 server1 dovecot: dsync-local(user2 at company.com): Debug: doveadm-sieve: Iterating Sieve mailbox attributes Jul 21 15:17:21 server1 dovecot: dsync-local(user2 at company.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Jul 21 15:17:21 server1 dovecot: dsync-local(user2 at company.com): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts. Jul 21 15:17:21 server1 dovecot: dsync-local(user2 at company.com): Debug: sieve-storage: using active sieve script path: /home/vmail/company.com/user2 at company.com//.dovecot.sieve Jul 21 15:17:21 server1 dovecot: dsync-local(user2 at company.com): Debug: sieve-storage: using sieve script storage directory: /home/vmail/company.com/user2 at company.com//sieve Jul 21 15:17:21 server1 dovecot: dsync-local(user2 at company.com): Debug: sieve-storage: using permissions from /home/vmail/company.com/user2 at company.com//sieve: mode=0700 gid=-1 Jul 21 15:17:21 server1 dovecot: dsync-local(user2 at company.com): Debug: sieve-storage: relative path to sieve storage in active link: sieve/ Jul 21 15:17:21 server1 dovecot: dsync-local(user3 at company.com): Debug: doveadm-sieve: Iterating Sieve mailbox attributes Jul 21 15:17:21 server1 dovecot: dsync-local(user3 at company.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Jul 21 15:17:21 server1 dovecot: dsync-local(user3 at company.com): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts. Jul 21 15:17:21 server1 dovecot: dsync-local(user3 at company.com): Debug: sieve-storage: using active sieve script path: /home/vmail/company.com/user3 at company.com//.dovecot.sieve First problem I notice is this /home/vmail/company.com/user1 at company.com//.dovecot.sieve missing. Is this supposed to be a file or a directory? The second sieve_global_dir, I don't need global rules. The third is this minus gid=-1 value. The user/group/rights on that directory is not different from the mail dirs (where the replication works): ls -al /home/vmail/company.com/user2 at company.com//sieve drwx--S--- 2 vmail vmail 4096 Jul 21 15:17 tmp The important directory for me is the siev_after because roundcube vacation plugin puts the sieves in there for example: -rw------- 1 vmail vmail 413 Jul 21 15:23 01_vacation.sieve -rw------- 1 vmail vmail 124 Jul 21 15:23 01_vacation.svbin -rw-r--r-- 1 vmail vmail 193 Feb 26 2014 antispam.sieve -rw-r--r-- 1 vmail vmail 272 Apr 13 2015 antispam.svbin Gets created after setting out of office message but will not get replicated to the other node. As I have showed in my earlier doveconf output is defined: sieve = ~/.dovecot.sieve sieve_after = ~/sieve_after sieve_dir = ~/sieve sieve_duplicate_period = 1h sieve_extensions = +editheader sieve_max_redirects = 20 And the sieve scripts work locally per server they are just not replicating as they should be. On Wed, 20 Jul 2016 16:31:55 +0200, Stephan Bosch wrote:> Op 20-7-2016 om 14:51 schreef Luescher Claude: > >> I did eventually was forced to do this and setup a 2 node test >> environment with the latest dovecot: /usr/dovecot/sbin/dovecot >> --version 2.2.25 (7be1766) /usr/dovecot/sbin/dovecot --build-options >> Build options: ioloop=epoll notify=inotify ipv6 openssl >> io_block_size=8192 Mail storages: shared mdbox sdbox maildir mbox > cydir >> imapc pop3c raw fail SQL drivers: mysql Passdb: checkpassword ldap >> pam >> passwd passwd-file shadow sql Userdb: checkpassword ldap nss passwd >> prefetch passwd-file sql and dovecot-2.2-pigeonhole-0.4.15. It >> unfortunately made no difference at all. The emails are still >> replicating while it is completely ignoring the sieve files so there >> must be a switch in the config for this somewhere. Otherwise I will >> have to look for other solutions like lsync, rsync to sync them > between >> the nodes. > > Is the doveadm sieve plugin properly installed at both sides of the > replication? On my system (Debian Jessie), it is located at > /usr/lib/dovecot/modules/doveadm. The file name is > lib10_doveadm_sieve_plugin.so. > > When mail_debug is enabled, the replication should log all kinds of > doveadm-sieve debug messages. > > Any errors in the log? > > Regards, > > Stephan.
Op 21-7-2016 om 15:50 schreef Luescher Claude:> Hello, > > Thanks for the advice. I have looked for the libs and here is the > difference: >[...]> First problem I notice is this > /home/vmail/company.com/user1 at company.com//.dovecot.sieve missing. Is > this supposed to be a file or a directory? > The second sieve_global_dir, I don't need global rules. > The third is this minus gid=-1 value. The user/group/rights on that > directory is not different from the mail dirs (where the replication > works): > > ls -al /home/vmail/company.com/user2 at company.com//sieve > drwx--S--- 2 vmail vmail 4096 Jul 21 15:17 tmp > > The important directory for me is the siev_after because roundcube > vacation plugin puts the sieves in there for example: > > -rw------- 1 vmail vmail 413 Jul 21 15:23 01_vacation.sieve > -rw------- 1 vmail vmail 124 Jul 21 15:23 01_vacation.svbin > -rw-r--r-- 1 vmail vmail 193 Feb 26 2014 antispam.sieve > -rw-r--r-- 1 vmail vmail 272 Apr 13 2015 antispam.svbin > > Gets created after setting out of office message but will not get > replicated to the other node. > > As I have showed in my earlier doveconf output is defined: > > sieve = ~/.dovecot.sieve > sieve_after = ~/sieve_after > sieve_dir = ~/sieve > sieve_duplicate_period = 1h > sieve_extensions = +editheader > sieve_max_redirects = 20 > > And the sieve scripts work locally per server they are just not > replicating as they should be.There is your problem. The sieve_after/sieve_before settings usually point to administrator-controlled global scripts. Therefore, these are not replicated by the doveadm_sieve plugin. Only the user's scripts in the ~/sieve directory and the active script marked by ~/.dovecot.sieve (symlink) are replicated. Regards, Stephan.
Hello, Ok so I have set everything to ~/sieve dir on the 2 nodes:>doveconf -n | grep sievmanagesieve_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 editheader sieve = ~/.dovecot.sieve sieve_after = ~/sieve sieve_before = ~/sieve sieve_dir = ~/sieve sieve_extensions = +editheader sieve_max_redirects = 20 protocols = " imap lmtp sieve pop3" service managesieve-login { inet_listener sieve { mail_plugins = " quota notify replication sieve" mail_plugins = " quota notify replication sieve" This way after I add a brand new user the sieve dir will be replicated but nothing after that. I have added a new user on node2 then enabled out of office message, the sieve files were created under the: /home/vmail/company.com/user5 at company.com/sieve -rw------- 1 vmail vmail 1011 Jul 22 09:49 01_vacation.sieve -rw------- 1 vmail vmail 644 Jul 22 09:49 01_vacation.svbin directory but were never replicated not even after restarting both dove nodes. Node2 Jul 22 09:47:54 mailnode2 dovecot: dsync-local(user5 at company.com): Debug: doveadm-sieve: Iterating Sieve mailbox attributes Jul 22 09:47:54 mailnode2 dovecot: dsync-local(user5 at company.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Jul 22 09:47:54 mailnode2 dovecot: dsync-local(user5 at company.com): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts. Jul 22 09:47:54 mailnode2 dovecot: dsync-local(user5 at company.com): Debug: sieve-storage: using active sieve script path: /home/vmail/company.com/user5 at company.com//.dovecot.sieve Jul 22 09:47:54 mailnode2 dovecot: dsync-local(user5 at company.com): Debug: sieve-storage: using sieve script storage directory: /home/vmail/company.com/user5 at company.com//sieve Jul 22 09:47:54 mailnode2 dovecot: dsync-local(user5 at company.com): Debug: sieve-storage: permission lookup failed from /home/vmail/company.com/user5 at company.com//sieve Jul 22 09:47:54 mailnode2 dovecot: dsync-local(user5 at company.com): Debug: sieve-storage: created storage directory /home/vmail/company.com/user5 at company.com//sieve/tmp Jul 22 09:47:54 mailnode2 dovecot: dsync-local(user5 at company.com): Debug: sieve-storage: relative path to sieve storage in active link: sieve/ Jul 22 09:47:54 mailnode2 dovecot: dsync-server(user5 at company.com): Debug: doveadm-sieve: Iterating Sieve mailbox attributes Jul 22 09:47:54 mailnode2 dovecot: dsync-server(user5 at company.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Jul 22 09:47:54 mailnode2 dovecot: dsync-server(user5 at company.com): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts. Jul 22 09:47:54 mailnode2 dovecot: dsync-server(user5 at company.com): Debug: sieve-storage: using active sieve script path: /home/vmail/company.com/user5 at company.com//.dovecot.sieve Jul 22 09:47:54 mailnode2 dovecot: dsync-server(user5 at company.com): Debug: sieve-storage: using sieve script storage directory: /home/vmail/company.com/user5 at company.com//sieve Jul 22 09:47:54 mailnode2 dovecot: dsync-server(user5 at company.com): Debug: sieve-storage: using permissions from /home/vmail/company.com/user5 at company.com//sieve: mode=0700 gid=-1 Jul 22 09:47:54 mailnode2 dovecot: dsync-server(user5 at company.com): Debug: sieve-storage: relative path to sieve storage in active link: sieve/ Node1 Jul 22 09:50:16 mailnode1 dovecot: dsync-server(user5 at company.com): Debug: doveadm-sieve: Iterating Sieve mailbox attributes Jul 22 09:50:16 mailnode1 dovecot: dsync-server(user5 at company.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Jul 22 09:50:16 mailnode1 dovecot: dsync-server(user5 at company.com): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts. Jul 22 09:50:16 mailnode1 dovecot: dsync-server(user5 at company.com): Debug: sieve-storage: using active sieve script path: /home/vmail/company.com/user5 at company.com//.dovecot.sieve Jul 22 09:50:16 mailnode1 dovecot: dsync-server(user5 at company.com): Debug: sieve-storage: using sieve script storage directory: /home/vmail/company.com/user5 at company.com//sieve Jul 22 09:50:16 mailnode1 dovecot: dsync-server(user5 at company.com): Debug: sieve-storage: permission lookup failed from /home/vmail/company.com/user5 at company.com//sieve Jul 22 09:50:16 mailnode1 dovecot: dsync-server(user5 at company.com): Debug: sieve-storage: created storage directory /home/vmail/company.com/user5 at company.com//sieve/tmp Jul 22 09:50:16 mailnode1 dovecot: dsync-server(user5 at company.com): Debug: sieve-storage: relative path to sieve storage in active link: sieve/ Jul 22 09:50:16 mailnode1 dovecot: dsync-local(user5 at company.com): Debug: doveadm-sieve: Iterating Sieve mailbox attributes Jul 22 09:50:16 mailnode1 dovecot: dsync-local(user5 at company.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Jul 22 09:50:16 mailnode1 dovecot: dsync-local(user5 at company.com): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts. Jul 22 09:50:16 mailnode1 dovecot: dsync-local(user5 at company.com): Debug: sieve-storage: using active sieve script path: /home/vmail/company.com/user5 at company.com//.dovecot.sieve Jul 22 09:50:16 mailnode1 dovecot: dsync-local(user5 at company.com): Debug: sieve-storage: using sieve script storage directory: /home/vmail/company.com/user5 at company.com//sieve Jul 22 09:50:16 mailnode1 dovecot: dsync-local(user5 at company.com): Debug: sieve-storage: using permissions from /home/vmail/company.com/user5 at company.com//sieve: mode=0700 gid=-1 Jul 22 09:50:16 mailnode1 dovecot: dsync-local(user5 at company.com): Debug: sieve-storage: relative path to sieve storage in active link: sieve/ On Thu, 21 Jul 2016 17:19:25 +0200, Stephan Bosch wrote:> Op 21-7-2016 om 15:50 schreef Luescher Claude: > >> Hello, Thanks for the advice. I have looked for the libs and here is >> the difference: > > [...] > >> First problem I notice is this >> /home/vmail/company.com/user1 at company.com [1]//.dovecot.sieve >> missing. >> Is this supposed to be a file or a directory? The second >> sieve_global_dir, I don't need global rules. The third is this minus >> gid=-1 value. The user/group/rights on that directory is not >> different >> from the mail dirs (where the replication works): ls -al >> /home/vmail/company.com/user2 at company.com [2]//sieve drwx--S--- 2 > vmail >> vmail 4096 Jul 21 15:17 tmp The important directory for me is the >> siev_after because roundcube vacation plugin puts the sieves in >> there >> for example: -rw------- 1 vmail vmail 413 Jul 21 15:23 >> 01_vacation.sieve -rw------- 1 vmail vmail 124 Jul 21 15:23 >> 01_vacation.svbin -rw-r--r-- 1 vmail vmail 193 Feb 26 2014 >> antispam.sieve -rw-r--r-- 1 vmail vmail 272 Apr 13 2015 >> antispam.svbin >> Gets created after setting out of office message but will not get >> replicated to the other node. As I have showed in my earlier >> doveconf >> output is defined: sieve = ~/.dovecot.sieve sieve_after > ~/sieve_after >> sieve_dir = ~/sieve sieve_duplicate_period = 1h sieve_extensions >> +editheader sieve_max_redirects = 20 And the sieve scripts work > locally >> per server they are just not replicating as they should be. > > There is your problem. The sieve_after/sieve_before settings usually > point to administrator-controlled global scripts. Therefore, these > are > not replicated by the doveadm_sieve plugin. Only the user's scripts > in > the ~/sieve directory and the active script marked by > ~/.dovecot.sieve > (symlink) are replicated. > > Regards, > > Stephan.Links: ------ [1] mailto:/home/vmail/company.com/user1 at company.com [2] mailto:/home/vmail/company.com/user2 at company.com
Stephan Bosch <stephan at rename-it.nl> wrote:> Only the user's scripts in the ~/sieve directory and the active script marked by ~/.dovecot.sieve (symlink) are replicated.I do have those files in those directories: KB> la /var/mail/.homedirs/mike/.dovecot.sieve /var/mail/.homedirs/mike/.sieves/default.sieve lrwx------ 1 vmail dovecot uarch 21 Jul 21 19:38 /var/mail/.homedirs/mike/.dovecot.sieve -> .sieves/default.sieve -rw------- 1 vmail dovecot uarch 5898 Jul 21 19:38 /var/mail/.homedirs/mike/.sieves/default.sieve MW> la /var/mail/.homedirs/mike/.dovecot.sieve /var/mail/.homedirs/mike/.sieves/default.sieve lrwx------ 1 vmail dovecot uarch 21 Jul 21 19:38 /var/mail/.homedirs/mike/.dovecot.sieve -> .sieves/default.sieve -rw------- 1 vmail dovecot uarch 5898 Jul 21 19:38 /var/mail/.homedirs/mike/.sieves/default.sieve KB> ls -al default -rw-r--r-- 1 root wheel 5909 Jul 21 19:39 default KB> doveadm sieve put -u mike -a default < default I do see traffic arriving at MW when listening on the defined port for synchronisation (tcpdump), but the new default file at KB doesn't become synchronized: MW> la /var/mail/.homedirs/mike/.dovecot.sieve /var/mail/.homedirs/mike/.sieves/default.sieve lrwx------ 1 vmail dovecot uarch 21 Jul 21 19:38 /var/mail/.homedirs/mike/.dovecot.sieve -> .sieves/default.sieve -rw------- 1 vmail dovecot uarch 5898 Jul 21 19:38 /var/mail/.homedirs/mike/.sieves/default.sieve If I do remove that file at MW and repeat "doveadm sieve put" at KB, I do see synchronization succeed: MW> rm /var/mail/.homedirs/mike/.sieves/default.sieve MW> la /var/mail/.homedirs/mike/.dovecot.sieve /var/mail/.homedirs/mike/.sieves/default.sieve ls: /var/mail/.homedirs/mike/.sieves/default.sieve: No such file or directory lrwx------ 1 vmail dovecot uarch 21 Jul 21 19:38 /var/mail/.homedirs/mike/.dovecot.sieve -> .sieves/default.sieve KB> doveadm sieve put -u mike -a default < default KB> la /var/mail/.homedirs/mike/.dovecot.sieve /var/mail/.homedirs/mike/.sieves/default.sieve lrwx------ 1 vmail dovecot uarch 21 Jul 21 19:40 /var/mail/.homedirs/mike/.dovecot.sieve -> .sieves/default.sieve -rw------- 1 vmail dovecot uarch 5909 Jul 21 19:40 /var/mail/.homedirs/mike/.sieves/default.sieve MW> la /var/mail/.homedirs/mike/.dovecot.sieve /var/mail/.homedirs/mike/.sieves/default.sieve lrwx------ 1 vmail dovecot uarch 21 Jul 21 19:40 /var/mail/.homedirs/mike/.dovecot.sieve -> .sieves/default.sieve -rw------- 1 vmail dovecot uarch 5909 Jan 1 1970 /var/mail/.homedirs/mike/.sieves/default.sieve The date of the file puzzles me, though. JFTR: This is a recent FreeBSD and ZFS. JFTR: The logfiles do show the very same messages as Claud has shown in his last mail. Regards, Michael