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