> > > > 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. > > > > Yes, I do as a matter of fact. I was just going to put in the RC in > > order to answer your email on the thread about the RC. Don't have the > > full answers yet, but when I installed the RC and restarted, I now get > > an error where Sieve doesn't like that I won't give it read permission > > on the .sieve file, so now I'm back to square one with this particular > > issue. > > > > OTOH, regarding my earlier post about the RC ignoring seive files, at > > least it is seeing global scripts (or trying to). Not sure about > > personal scripts yet. > > > > Error: TiQJHH2X/1S5UuAAM/SpMA: sieve: file script: Failed to open sieve > > script: > > open(/usr/local/var/dovecot/sieve/script1.sieve) failed: Permission > > denied... > > > > I will do some more testing and report what I find. > > I gave read permission to the .sieve files and the same > original error happens as with .0.4.6. Now it's complaining > about both scripts in my global directory. That it was > working without these errors for a while and then complained > only about one of the scripts, now both scripts seems to say > something but I'm not sure what. Maybe I'll try to recreate the > files for fun.
The relevant mail_debug lines seem to be these: dovecot: lmtp(testu...@example.com): Debug: Be3h7iRf/1TnUw2PM/SpMA: sieve: Opening script 1 of 2 from `/usr/local/var/dovecot/sieve/script1.sieve' dovecot: lmtp(testu...@example.com): Debug: Be3h7iRf/1TnUw2PM/SpMA: sieve: Loading script /usr/local/var/dovecot/sieve/script1.sieve dovecot: lmtp(testu...@example.com): Debug: Be3h7iRf/1TnUw2PM/SpMA: sieve: binary open: binary /usr/local/var/dovecot/sieve/script1.svbin stored with different binary version 1.2 (!= 1.3; automatically fixed when re-compiled) dovecot: lmtp(testu...@example.com): Debug: Be3h7iRf/1TnUw2PM/SpMA: sieve: Script `script1' from /usr/local/var/dovecot/sieve/script1.sieve successfully compiled Is this possibly due to a mixing of 0.4.6 and 0.4.7 sievec command? Well, I'm not sure that would be it because when I started getting ther error, I recompiled the sieve scrips and restarted dovecot which presumably would have made software versions match up. On the other hand, I don't know exactly what's happening: I downgraded to 0.4.6 again, intentionally triggered the error by updating the timestamp on the .sieve file, recompiled the script and now the error went away.