sieve scripts not synching for 2.3.5.1 pre-built
Hi,
We're synching mailboxes, changing format from maildir to mdbox, using doveadm backup/doveadm sync.
When still running 2.2.36, 'doveadm backup' also synched the sieve scripts, without issues.
After the upgrade to 2.3.5.1, the sieve sync stopped working. We're using the pre-built 2.3 packages from https://repo.dovecot.org/ce-2.3-latest/debian/stretch
In fact, when I now remove the dovecot-2.3 packages, and use my own old 2.2.36 packages, using the exact same config, the sieve scripts are being copied again.
In 2.2.36, when I migrate a mailbox, I do see Pigeonhole being initialized. Eg:
userimap-dev1:~ # doveadm -D backup -u xtra30 "doveadm -D dsync-server -u xtra30+mdbox=.8d1&4&03&xtra30"
(note: that strange destination user signals to the auth proxy that we want the new mdbox storage instead of the default for this user)
Debug: Loading modules from directory: /usr/lib/dovecot/modules
Debug: Module loaded: /usr/lib/dovecot/modules/lib02_lazy_expunge_plugin.so
Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so
Debug: Module loaded: /usr/lib/dovecot/modules/lib20_zlib_plugin.so
Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm
Debug: Skipping module doveadm_acl_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined symbol: acl_user_module (this is usually intentional, so just ignore this message)
Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_deinit (this is usually intentional, so just ignore this message)
Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so
Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so
[...skipping a bunch of lines...]
dsync-local(xtra30): Debug: brain M: Mailbox Spam: local=88b39d12998d9e5cbb700000436edcce/0/1, remote=00000000000000000000000000000000/0/0: mailbox not selectable yet
dsync-local(xtra30): Debug: brain M: Mailbox Test: local=801bb932e98d9e5c3d6d0000436edcce/0/1, remote=00000000000000000000000000000000/0/0: mailbox not selectable yet
dsync-local(xtra30): Debug: brain M: Mailbox Trash: local=fc9b162b86479f5cc85a0000436edcce/0/1, remote=00000000000000000000000000000000/0/0: mailbox not selectable yet
dsync-remote(xtra30): Debug: brain S: Skipping unchanged mailbox e7c1961d84479f5c885a0000436edcce
dsync-local(xtra30): Debug: doveadm-sieve: Iterating Sieve mailbox attributes
dsync-local(xtra30): Debug: sieve: Pigeonhole version 0.4.24 () initializing
dsync-local(xtra30): Debug: sieve: include: sieve_global is not set; it is currently not possible to include :global' scripts. dsync-local(xtra30): Debug: sieve: file storage: Using active Sieve script path: /var/mail/.8d1/index/7/oldsieve/x/xt/xtra30/dovecot.sieve [... skipping a lot of sieve debug lines that seem fine ...] dsync-remote(xtra30): Debug: sieve: file script: Opened script
xtra30-testfilter' from /var/mail/.8d1/index/4/03/xtra30/sieve/scripts/xtra30-testfilter.sieve' dsync-remote(xtra30): Debug: doveadm-sieve: Assigned value for key
vendor/vendor.dovecot/pvt/server/sieve/default' (last change: 2019-03-29 22:27:41)
dsync-remote(xtra30): Debug: brain S: Import INBOX: Import attribute vendor/vendor.dovecot/pvt/server/sieve/default: Nonexistent locally
dsync-remote(xtra30): Debug: brain S: Import INBOX: Last common UID=0. Delayed expunges=
dsync-remote(xtra30): Debug: brain S: Import INBOX: Import change type=save GUID=1553894809.M254847P28859.userimap11.xs4all.net,S=1311,W=1342 UID=1 hdr_hash= result=Mail's UID is above local UIDNEXT - No more local mails found
[...]
Afterwards, the sieve scripts have been transferred, even including last-modified time of any scripts.
However, with 2.3.5.1, it seems doveadm-sieve is never called from dsync. Output includes:
userimap-dev1:~ # doveadm -D backup -u xtra30 "doveadm -D dsync-server -u xtra30+mdbox=.8d1&4&03&xtra30" Debug: Loading modules from directory: /usr/lib/dovecot/modules Debug: Module loaded: /usr/lib/dovecot/modules/lib02_lazy_expunge_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/lib20_zlib_plugin.so Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Debug: Skipping module doveadm_acl_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined symbol: acl_lookup_dict_iterate_visible_next (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_deinit (this is usually intentional, so just ignore this message) Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so [... skipping some lines again ..] dsync-local(xtra30)<SCSfIc5Wo1zTKAAAsPW7qw>: Debug: brain M: Mailbox Spam: local=88b39d12998d9e5cbb700000436edcce/0/1, remote=00000000000000000000000000000000/0/0: mailbox not selectable yet dsync-local(xtra30)<SCSfIc5Wo1zTKAAAsPW7qw>: Debug: brain M: Mailbox Test: local=801bb932e98d9e5c3d6d0000436edcce/0/1, remote=00000000000000000000000000000000/0/0: mailbox not selectable yet dsync-local(xtra30)<SCSfIc5Wo1zTKAAAsPW7qw>: Debug: brain M: Mailbox Trash: local=fc9b162b86479f5cc85a0000436edcce/0/1, remote=00000000000000000000000000000000/0/0: mailbox not selectable yet dsync-remote(xtra30)<h8hfIs5Wo1zWKAAAsPW7qw>: Debug: brain S: Skipping unchanged mailbox e7c1961d84479f5c885a0000436edcce dsync-remote(xtra30)<h8hfIs5Wo1zWKAAAsPW7qw>: Debug: brain S: Import INBOX: Last common UID=0. Delayed expunges= dsync-remote(xtra30)<h8hfIs5Wo1zWKAAAsPW7qw>: Debug: brain S: Import INBOX: Import change type=save GUID=1553894809.M254847P28859.userimap11.xs4all.net,S=1311,W=1342 UID=1 hdr_hash= result=Mail's UID is above local UIDNEXT - No more local mails found [...]
In the above output from 2.3.5.1, all lines starting with "Debug: doveadm-sieve: Iterating Sieve mailbox attributes" are absent. I have no idea why.
We can "work around" it by explicitly doing an rsync of the sieve storage after the migration, but that's a bit of a hack.
Attached is a doveconf -n output for 2.3.5.1.
-- Jan-Pieter Cornet johnpc@xs4all.net Systeembeheer XS4ALL Internet bv www.xs4all.nl
On 2 Apr 2019, at 17.03, Jan-Pieter Cornet via dovecot dovecot@dovecot.org wrote:
Hi,
We're synching mailboxes, changing format from maildir to mdbox, using doveadm backup/doveadm sync.
When still running 2.2.36, 'doveadm backup' also synched the sieve scripts, without issues.
After the upgrade to 2.3.5.1, the sieve sync stopped working. We're using the pre-built 2.3 packages from https://repo.dovecot.org/ce-2.3-latest/debian/stretch https://repo.dovecot.org/ce-2.3-latest/debian/stretch
Looks like this is trivial to reproduce. It used to work still in v2.3.1, but then something broke it. Tracking internally in DOP-1062.
On 2 Apr 2019, at 22.37, Timo Sirainen via dovecot dovecot@dovecot.org wrote:
On 2 Apr 2019, at 17.03, Jan-Pieter Cornet via dovecot
mailto:dovecot@dovecot.org> wrote: Hi,
We're synching mailboxes, changing format from maildir to mdbox, using doveadm backup/doveadm sync.
When still running 2.2.36, 'doveadm backup' also synched the sieve scripts, without issues.
After the upgrade to 2.3.5.1, the sieve sync stopped working. We're using the pre-built 2.3 packages from https://repo.dovecot.org/ce-2.3-latest/debian/stretch https://repo.dovecot.org/ce-2.3-latest/debian/stretch
Looks like this is trivial to reproduce. It used to work still in v2.3.1, but then something broke it. Tracking internally in DOP-1062.
Reverting https://github.com/dovecot/pigeonhole/commit/479c5e57046dec76078597df844dacc... https://github.com/dovecot/pigeonhole/commit/479c5e57046dec76078597df844dacc... fixes this.
Timo Sirainen via dovecot wrote:
On 2 Apr 2019, at 22.37, Timo Sirainen via dovecot
mailto:dovecot@dovecot.org> wrote: On 2 Apr 2019, at 17.03, Jan-Pieter Cornet via dovecot
mailto:dovecot@dovecot.org> wrote: Hi,
We're synching mailboxes, changing format from maildir to mdbox, using doveadm backup/doveadm sync.
When still running 2.2.36, 'doveadm backup' also synched the sieve scripts, without issues.
After the upgrade to 2.3.5.1, the sieve sync stopped working. We're using the pre-built 2.3 packages from https://repo.dovecot.org/ce-2.3-latest/debian/stretch
Looks like this is trivial to reproduce. It used to work still in v2.3.1, but then something broke it. Tracking internally in DOP-1062.
Reverting https://github.com/dovecot/pigeonhole/commit/479c5e57046dec76078597df844dacc... fixes this.
This is a change where strncmp() gets replaced by str_begins(). IMO a good change, however in src/lib-sieve/storage/file/sieve-file-storage-save.c
strncmp(scriptname, fstorage->active_fname, namelen)
gets replaced by
str_begins(fstorage->active_fname, scriptname)
Note that the arguments are swapped here, giving a false result.
Marc
On 2-4-19 21:51, Timo Sirainen via dovecot wrote:
Looks like this is trivial to reproduce. It used to work still in v2.3.1, but then something broke it. Tracking internally in DOP-1062.
Reverting https://github.com/dovecot/pigeonhole/commit/479c5e57046dec76078597df844dacc... fixes this.
Looks like that last patch segments puts the arguments to str_begin in the wrong order... strncmp(prefix, MAILBOX_ATTRIBUTE_PREFIX_SIEVE, strlen(prefix)) == 0 should be translated to: str_begins(MAILBOX_ATTRIBUTE_PREFIX_SIEVE, prefix)
-- Jan-Pieter Cornet johnpc@xs4all.net Systeembeheer XS4ALL Internet bv www.xs4all.nl
Hello,
Am 02.04.19 um 21:51 schrieb Timo Sirainen via dovecot:
On 2 Apr 2019, at 22.37, Timo Sirainen via dovecot
mailto:dovecot@dovecot.org> wrote: On 2 Apr 2019, at 17.03, Jan-Pieter Cornet via dovecot
mailto:dovecot@dovecot.org> wrote: Hi,
We're synching mailboxes, changing format from maildir to mdbox, using doveadm backup/doveadm sync.
When still running 2.2.36, 'doveadm backup' also synched the sieve scripts, without issues.
After the upgrade to 2.3.5.1, the sieve sync stopped working. We're using the pre-built 2.3 packages from https://repo.dovecot.org/ce-2.3-latest/debian/stretch
Looks like this is trivial to reproduce. It used to work still in v2.3.1, but then something broke it. Tracking internally in DOP-1062.
Reverting https://github.com/dovecot/pigeonhole/commit/479c5e57046dec76078597df844dacc... fixes this.
has this been fixed in 2.3.6 ?
In my first tests sieve scripts still seem not to be replicated with dovecot-2.3.6
Regards, Andreas
Hi,
same here, this doesn't seeem to be fixed with latest pigeonhole and dovecot release.
Regards, Marcel
Am 03.05.2019 um 08:20 schrieb Piper Andreas via dovecot:
Hello,
Am 02.04.19 um 21:51 schrieb Timo Sirainen via dovecot:
On 2 Apr 2019, at 17.03, Jan-Pieter Cornet via dovecot
mailto:dovecot@dovecot.org> wrote: Hi,
We're synching mailboxes, changing format from maildir to mdbox, using doveadm backup/doveadm sync.
When still running 2.2.36, 'doveadm backup' also synched the sieve scripts, without issues.
After the upgrade to 2.3.5.1, the sieve sync stopped working. We're using the pre-built 2.3 packages from https://repo.dovecot.org/ce-2.3-latest/debian/stretch Looks like this is trivial to reproduce. It used to work still in v2.3.1, but then something broke it. Tracking internally in DOP-1062. Reverting https://github.com/dovecot/pigeonhole/commit/479c5e57046dec76078597df844dacc... fixes
On 2 Apr 2019, at 22.37, Timo Sirainen via dovecot
mailto:dovecot@dovecot.org> wrote: this. has this been fixed in 2.3.6 ?
In my first tests sieve scripts still seem not to be replicated with dovecot-2.3.6
Regards, Andreas
On 04/05/2019 22:17, Marcel Menzel via dovecot wrote:
Hi,
same here, this doesn't seeem to be fixed with latest pigeonhole and dovecot release.
Regards, Marcel
Am 03.05.2019 um 08:20 schrieb Piper Andreas via dovecot:
Hello,
Am 02.04.19 um 21:51 schrieb Timo Sirainen via dovecot:
On 2 Apr 2019, at 17.03, Jan-Pieter Cornet via dovecot
mailto:dovecot@dovecot.org> wrote: Hi,
We're synching mailboxes, changing format from maildir to mdbox, using doveadm backup/doveadm sync.
When still running 2.2.36, 'doveadm backup' also synched the sieve scripts, without issues.
After the upgrade to 2.3.5.1, the sieve sync stopped working. We're using the pre-built 2.3 packages from https://repo.dovecot.org/ce-2.3-latest/debian/stretch Looks like this is trivial to reproduce. It used to work still in v2.3.1, but then something broke it. Tracking internally in DOP-1062. Revertinghttps://github.com/dovecot/pigeonhole/commit/479c5e57046dec76078597df844dacc... fixes
On 2 Apr 2019, at 22.37, Timo Sirainen via dovecot
mailto:dovecot@dovecot.org> wrote: this. has this been fixed in 2.3.6 ?
In my first tests sieve scripts still seem not to be replicated with dovecot-2.3.6
Should be fixed in 2.3.7.
Regards,
Stephan.
participants (6)
-
Jan-Pieter Cornet
-
Marc Weustink
-
Marcel Menzel
-
Piper Andreas
-
Stephan Bosch
-
Timo Sirainen