[Dovecot] deliver segv on sieve redirect
Hello,
I've been trying out the bleeding edge, 1.2.alpha4. I'm having a problem with deliver and
dovecot-1.2-sieve-0.1.1.
I get a segv on this sieve script:
require ["fileinto", "reject", "vacation", "envelope", "regex"]; if header :contains "subject" ["urgent"] { redirect "someone@somewhere.net"; fileinto "test"; }
Seems its happening on the "redirect". If I put the fileinto before the redirect, the fileinto works.
I tried putting extra debug statements in plugins/lda-sieve/lda-sieve-plugin.c right after the sieve_execute in lda_sieve_run, but it never prints anything. I'm guessing thats the right place. Its quite possible there is something amiss in my setup.
My logs show:
Nov 26 02:51:12 marvin dovecot: deliver(andy@x.y.org): sieve: using sieve path: /var/mail/vhosts/x.y.org/andy/.dovecot.sieve Nov 26 02:51:12 marvin dovecot: deliver(andy@x.y.org): sieve: opening script /var/mail/vhosts/x.y.org/andy/.dovecot.sieve Nov 26 02:51:12 marvin dovecot: deliver(andy@x.y.org): sieve: executing compiled script /var/mail/vhosts/x.y.org/andy/.dovecot.sieve Nov 26 02:51:12 marvin postfix/pipe[17027]: 0CA895CB3A: to=andy@x.y.org, relay=dovecot, delay=0.41, delays=0.33/0.01/0/0.07, dsn=5.3.0, status=bounced (Command died with signal 11: "/usr/libexec/dovecot/deliver")
Thanks,
Andy
If you redirect the mail, how can it be stored into a folder after that ?
Andy Howell a écrit :
Hello,
I've been trying out the bleeding edge, 1.2.alpha4. I'm having a
problem with deliver and dovecot-1.2-sieve-0.1.1.
I get a segv on this sieve script:
require ["fileinto", "reject", "vacation", "envelope", "regex"]; if header :contains "subject" ["urgent"] { redirect "someone@somewhere.net"; fileinto "test"; }
Seems its happening on the "redirect". If I put the fileinto before the redirect, the fileinto works.
I tried putting extra debug statements in plugins/lda-sieve/lda-sieve-plugin.c right after the sieve_execute in lda_sieve_run, but it never prints anything. I'm guessing thats the right place. Its quite possible there is something amiss in my setup.
My logs show:
Nov 26 02:51:12 marvin dovecot: deliver(andy@x.y.org): sieve: using sieve path: /var/mail/vhosts/x.y.org/andy/.dovecot.sieve Nov 26 02:51:12 marvin dovecot: deliver(andy@x.y.org): sieve: opening script /var/mail/vhosts/x.y.org/andy/.dovecot.sieve Nov 26 02:51:12 marvin dovecot: deliver(andy@x.y.org): sieve: executing compiled script /var/mail/vhosts/x.y.org/andy/.dovecot.sieve Nov 26 02:51:12 marvin postfix/pipe[17027]: 0CA895CB3A: to=andy@x.y.org, relay=dovecot, delay=0.41, delays=0.33/0.01/0/0.07, dsn=5.3.0, status=bounced (Command died with signal 11: "/usr/libexec/dovecot/deliver")
Thanks,
Andy
Guillaume Hilt wrote:
If you redirect the mail, how can it be stored into a folder after that ?
I thought that should work; I must admit I'm not well versed on sieve scripts. Even without the fileinto, it dies.
Thanks,
Andy
Andy Howell a écrit :
Hello,
I've been trying out the bleeding edge, 1.2.alpha4. I'm having a
problem with deliver and dovecot-1.2-sieve-0.1.1.
I get a segv on this sieve script:
require ["fileinto", "reject", "vacation", "envelope", "regex"]; if header :contains "subject" ["urgent"] { redirect "someone@somewhere.net"; fileinto "test"; }
Seems its happening on the "redirect". If I put the fileinto before the redirect, the fileinto works.
I tried putting extra debug statements in plugins/lda-sieve/lda-sieve-plugin.c right after the sieve_execute in lda_sieve_run, but it never prints anything. I'm guessing thats the right place. Its quite possible there is something amiss in my setup.
My logs show:
Nov 26 02:51:12 marvin dovecot: deliver(andy@x.y.org): sieve: using sieve path: /var/mail/vhosts/x.y.org/andy/.dovecot.sieve Nov 26 02:51:12 marvin dovecot: deliver(andy@x.y.org): sieve: opening script /var/mail/vhosts/x.y.org/andy/.dovecot.sieve Nov 26 02:51:12 marvin dovecot: deliver(andy@x.y.org): sieve: executing compiled script /var/mail/vhosts/x.y.org/andy/.dovecot.sieve Nov 26 02:51:12 marvin postfix/pipe[17027]: 0CA895CB3A: to=andy@x.y.org, relay=dovecot, delay=0.41, delays=0.33/0.01/0/0.07, dsn=5.3.0, status=bounced (Command died with signal 11: "/usr/libexec/dovecot/deliver")
Thanks,
Andy
Andy Howell wrote:
Guillaume Hilt wrote:
If you redirect the mail, how can it be stored into a folder after that ?
I thought that should work; I must admit I'm not well versed on sieve scripts. Even without the fileinto, it dies.
Your script is correct. You can even file messages into multiple folders at the same time and redirect to multiple recipients (currently max 4 recipients, as hard-coded in src/lib-sieve/sieve-limits.h).
Regards,
Stephan.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Wed, 26 Nov 2008, Andy Howell wrote:
I thought that should work; I must admit I'm not well versed on sieve scripts. Even without the fileinto, it dies.
Nov 26 02:51:12 marvin postfix/pipe[17027]: 0CA895CB3A: to=andy@x.y.org, relay=dovecot, delay=0.41, delays=0.33/0.01/0/0.07, dsn=5.3.0, status=bounced (Command died with signal 11: "/usr/libexec/dovecot/deliver")
Regardless of "should it work or not", the SEGV is bad.
Could you try running deliver from command line with the appropriate command line switches and su'ed to the user, to get a core file you might raise the core limit, e.g. ulimit -c unlimited in bash?
BTW: For me it looks like that the user deliver runs under cannot spawn sendmail to drop the mail to the queue.
Bye,
Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFJLkxRVJMDrex4hCIRAmJ5AKDZaIerhTIvDx43BwqfeBiykuPJ5QCgjPEv FMHgdLl6elkanXsYNp8xwjw= =laZw -----END PGP SIGNATURE-----
Andy Howell wrote:
Hello,
I've been trying out the bleeding edge, 1.2.alpha4. I'm having a
problem with deliver and dovecot-1.2-sieve-0.1.1.
I get a segv on this sieve script:
require ["fileinto", "reject", "vacation", "envelope", "regex"]; if header :contains "subject" ["urgent"] { redirect "someone@somewhere.net"; fileinto "test"; }
Seems its happening on the "redirect". If I put the fileinto before the redirect, the fileinto works. Fixed:
http://hg.rename-it.nl/dovecot-libsieve/rev/28e3144b79d1
This bug probably affects other actions that only send messages. Not sure why it worked before. This a bit of a show-stopper bug and warrants a new release. I'll look into that shortly. In the mean time, you can apply those changes and continue testing (i.e. click 'raw' on that page to obtain the patch)
Regards,
Stephan
participants (4)
-
Andy Howell
-
Guillaume Hilt
-
Steffen Kaiser
-
Stephan Bosch