Why is Sieve trying to re-compile global scripts?

Stephan Bosch stephan at rename-it.nl
Wed Mar 11 01:16:36 UTC 2015


On 3/11/2015 2:10 AM, E.B. wrote:
> I have some global scripts that were running nicely.
>
> Then I opened one in an editor and (probably, but not 100% sure)
> mindlessly saved the file, even though I hadn't made any changes.
>
> Shortly after, Sieve errors started showing in the log:
>
> Error: 4k5JA74R/1TlIwABG/SpMA: sieve: binary save: failed to create temporary file: open(/usr/local/var/dovecot/sieve/script2.svbin.example.com.4139.) failed: Permission denied...
> Error: 4k5JA74R/1TlIwABG/SpMA: sieve: The LDA Sieve plugin does not have permission to save global Sieve script binaries; global Sieve scripts like `/usr/local/var/dovecot/sieve/script2.sieve' need to be pre-compiled using the sievec tool
>
> Well, OK, is it going by the timestamp on the files?  Fine.  I recompiled
> it by hand.  Yet, I STILL got these errors!
>
> I triple and quadruple checked that the timestamp on the svbin files was
> more recent.  And Sieve was only complaining about one of the two
> scripts in the directory.
>
> I restarted dovecot.  No change.
>
> So I removed read permission on the .sieve files and only left read
> permission on the .svbin files.  THIS WORKED.  No more error.
> I can live with that, but why was it not complaining before, why was it
> only complaining about one of my scripts and why would it complain
> at all when the timestamps on the svbin should have indicated on
> compilation is needed?

I've heard about this problem before. Do you have the opportunity to
test this with the 0.4.7.rc1 release? That adds a few extra debug lines
(shown when mail_debug=yes) that would indicate why Sieve is thinking
the global script is not up-to-date.

Regards,

Stephan.


More information about the dovecot mailing list