Released Pigeonhole v0.4.17.rc1 for Dovecot v2.2.28.rc1.
Hello Dovecot users,
Several bugs were found in the course of the last few months, but no new features were created. So, this will be strictly a bug-fixing release. The previous Pigeonhole release should still work with the new Dovecot release, which means you are not required to upgrade. However, my advice would be to upgrade once this release candidate matures into a final release, since at least the first bug listed below is pretty severe.
Changelog v0.4.17:
- LDA Sieve plugin: Fixed handling of an early explicit keep during multiscript execution. Action side-effects and the message snapshot would be lost at the final stage where the implicit keep is evaluated. This could result in the IMAP flags assigned to the message to be forgotten or that headers modified by the "editheader" extension would revert to their original state.
- file script storage: Amended the up-to-date time stamp comparison for on-disk binaries to include nanoseconds. This will fix problems occurring when both binary and script are saved within the same second. This fix is ineffective on older systems that have no support for nanoseconds in stat() timestamps, which should be pretty rare nowadays.
- file script storage: Improve saving and listing permission error to include more details.
- imapsieve plugin: Make sure "INBOX" is upper case in static mailbox rules. Otherwise, the mailbox name would never match, since matching is performed case-sensitively and Dovecot only returns the upper-cased "INBOX".
- imapsieve plugin: Fixed assert failure occurring when used with virtual mailboxes.
- doveadm sieve plugin: Fixed crash when setting Sieve script via attribute's string value.
The release is available as follows:
http://pigeonhole.dovecot.org/releases/2.2/rc/dovecot-2.2-pigeonhole-0.4.17.... http://pigeonhole.dovecot.org/releases/2.2/rc/dovecot-2.2-pigeonhole-0.4.17....
Refer to http://pigeonhole.dovecot.org and the Dovecot v2.x wiki for more information. Have fun testing this release candidate and don't hesitate to notify me when there are any problems.
Regards,
-- Stephan Bosch stephan@rename-it.nl
On Feb 20, 2017, at 5:18 PM, Stephan Bosch <stephan@rename-it.nl> wrote:
Changelog v0.4.17:
I didn’t see this reported bug listed in the changelog, did it get fixed?
On January 12, 2017 at 9:55 PM Matt Simpson <dclist@list.jmatt.net> wrote:
I’m running dovecot 2.2.27 and pigeonhole 0.4.16 on FreeBSD 11.
I’m using the pigeonhole/sieve external pipe plugin to run a Perl program to send a Pushover notification when certain messages are received.
The Perl script is executed, and the notification is sent. But then the script task seems to go zombie until it is killed after a timeout.
<logs and other documentation in original report snipped>
I’m not a Unix programming ace, but from what I’ve been able to find out, this seems to mean that the lda process is forking another process to run the pipe script, and not getting the proper notification when it finishes (not issuing a wait?). So after 10 seconds, it sends a TERM to the task which is no longer running, and when that doesn’t work, it sends a KILL. Anybody know what’s happening here?
Seems that we are not doing waitpid() on your program when it's killed. Also, I guess we should wait longer than 0 msecs. I'll try and see if I can replicate this.
Aki
On 21.02.2017 04:45, Matt Simpson wrote:
On Feb 20, 2017, at 5:18 PM, Stephan Bosch <stephan@rename-it.nl> wrote:
Changelog v0.4.17:
I didn’t see this reported bug listed in the changelog, did it get fixed?
On January 12, 2017 at 9:55 PM Matt Simpson <dclist@list.jmatt.net> wrote:
I’m running dovecot 2.2.27 and pigeonhole 0.4.16 on FreeBSD 11.
I’m using the pigeonhole/sieve external pipe plugin to run a Perl program to send a Pushover notification when certain messages are received.
The Perl script is executed, and the notification is sent. But then the script task seems to go zombie until it is killed after a timeout.
<logs and other documentation in original report snipped>
I’m not a Unix programming ace, but from what I’ve been able to find out, this seems to mean that the lda process is forking another process to run the pipe script, and not getting the proper notification when it finishes (not issuing a wait?). So after 10 seconds, it sends a TERM to the task which is no longer running, and when that doesn’t work, it sends a KILL. Anybody know what’s happening here?
Seems that we are not doing waitpid() on your program when it's killed. Also, I guess we should wait longer than 0 msecs. I'll try and see if I can replicate this.
Aki
Hi!
The bug is probably in dovecot core, and not in pigeonhole. I wasn't able to yet try and replicate this issue.
Aki
participants (3)
-
Aki Tuomi
-
Matt Simpson
-
Stephan Bosch