Best practice for getting sieve scripts replicated?

Michael Grimm
Thu, 14 May 2015 19:32:09 -0000

> On 14.05.2015, at 19:21, Stephan Bosch <stephan at rename-it.nl>
wrote:
>
> On 5/14/2015 2:46 PM, Michael Grimm wrote:
>> Hi ?
>>
>> I do have replication between two servers running, and mail is
replicated without any issues.
>> I do have sieve running at both servers without any issues.
>>
>> But replication of sieve scripts doesn't work as
"expected":
>>
>> Whenever I do modify my default script und upload it via "doveadm
sieve put -u abc -a default < default" it becomes uploaded to the home
directory of user abc as expected, but it will not be replicated to the partner
server.
>>
>> Whenever I do deactivate the default script by "doveadm sieve
deactivate -u abc", followed by a deletion "doveadm sieve delete -u
abc default" plus subsequent upload of the script "doveadm sieve put
-u abc -a default < default", replication takes place instantly.
>>
>> Questions: Is a modification of a sieve script supposed to be triggered
the latter way? Or am I doing it the wrong way?
>
>
> That smells like a bug. What is your configuration (dovecot -n)? This
> should also show the versions of the packages you have installed.

--------------------------------------------------------------------------------------

mail> doveconf -n
# 2.2.17 (05e14a49507f): /usr/local/etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.8.rc3 (b491aa4139bc)
# OS: FreeBSD 10.1-STABLE amd64  zfs
auth_username_format = %Ln
auth_verbose = yes
deliver_log_format = msgid=%m, time=%{delivery_time}ms, status=%$
doveadm_password = </usr/local/etc/dovecot/SQLITE/doveadm-secret
doveadm_port = xxxxx
first_valid_gid = 5000
first_valid_uid = 5000
last_valid_gid = 5000
last_valid_uid = 5000
mail_gid = vmail
mail_home = /var/mail/.homedirs/%n
mail_location = mdbox:/var/mail/.maildirs/%n
mail_log_prefix = "%s(%u) %{session}: "
mail_plugins = " mail_log notify replication"
mail_uid = vmail
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
mdbox_rotate_size = 100 M
passdb {
  args = /usr/local/etc/dovecot/dovecot-sql.conf
  driver = sql
}
plugin {
  mail_log_events = delete undelete expunge copy flag_change save mailbox_delete
mailbox_rename mailbox_create
  mail_log_fields = uid box msgid flags
  mail_replica = tcp:dsync2.some.td
  replication_full_sync_interval = 1 hours
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/.sieves
}
postmaster_address = postmaster at some.td
protocols = imap lmtp sieve
service aggregator {
  fifo_listener replication-notify-fifo {
    mode = 0600
    user = vmail
  }
  unix_listener replication-notify {
    mode = 0600
    user = vmail
  }
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    user = vmail
  }
}
service config {
  unix_listener config {
    user = vmail
  }
}
service doveadm {
  inet_listener {
    address = dsync1.some.td
    port = 55588
  }
  user = vmail
}
service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    address = *,[::]
    port = 993
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0660
    user = postfix
  }
  user = vmail
}
service managesieve-login {
  inet_listener sieve {
    address = *,[::]
    port = yyyy
  }
}
service replicator {
  process_min_avail = 1
  unix_listener replicator-doveadm {
    mode = 0600
    user = vmail
  }
}
ssl_cert = </etc/ssl/certs/mail.some.td.crt
ssl_cipher_list = TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!3DES:!PSK:@STRENGTH
ssl_key = </etc/ssl/private/mail.some.td.key
ssl_protocols = !SSLv2 !SSLv3
userdb {
  driver = prefetch
}
userdb {
  args = /usr/local/etc/dovecot/dovecot-sql.conf
  driver = sql
}
verbose_proctitle = yes
protocol imap {
  imap_client_workarounds = delay-newmail
}
protocol lmtp {
  mail_plugins = " mail_log notify replication sieve"
}

--------------------------------------------------------------------------------------

Sorry, I should thought about providing more before :-( Sorry, again.

Feel free to ask for potential tests from my site.

HTH,
Michael