Hi,

Running dovecot 2.2.27 (c0f36b0) on Debian GNU/Linux stable (version
9.6), I'm trying to use the execute command in a sieve script, with
direct execution (not service socket).

The script is executed, and returns (the process exits), but the
dovecot-lda process seems to not notice, and thinks the script did not
terminate. After sieve_execute_exec_timeout has passed, it sends a
TERM, a bit later a KILL and then logs a failure.

The "ps -Af f" looks like:
S      0:00  \_ /usr/sbin/exim4 -Mc 1gMazS-0007IV-RB
S      0:00      \_ /usr/lib/dovecot/dovecot-lda -f mas...@blitz.conuropsis.org
Z      0:00      |   \_ [foofilter] <defunct>
S      0:00      \_ /usr/sbin/exim4 -Mc 1gMazS-0007IV-RB

The dovecot debug log looks like:

lda(user): Debug: Loading modules from directory: /usr/lib/dovecot/modules
lda(user): Debug: Module loaded: /usr/lib/dovecot/modules/lib90_sieve_plugin.so
lda(user): Debug: Effective uid=1000, gid=1000, home=/home/user
lda(user): Debug: maildir++: root=/home/user/Maildir, index=, indexpvt=, 
control=, inbox=/home/user/Maildir, alt=
lda(user): Debug: userdb lookup skipped, username taken from USER environment
lda(user): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=
lda(user): Debug: Destination address: u...@blitz.conuropsis.org (source: 
user@hostname)
lda(user): Debug: sieve: Pigeonhole version 0.4.16 (fed8554) initializing
lda(user): Debug: sieve: include: sieve_global is not set; it is currently not 
possible to include `:global' scripts.
lda(user): Debug: sieve: Sieve imapsieve plugin for Pigeonhole version 0.4.16 
(fed8554) loaded
lda(user): Debug: sieve: Sieve Extprograms plugin for Pigeonhole version 0.4.16 
(fed8554) loaded
lda(user): Debug: sieve: file storage: Using active Sieve script path: 
/data/home/user/.dovecot.sieve
lda(user): Debug: sieve: file storage: Using script storage path: 
/home/user/sieve
lda(user): Debug: sieve: file storage: Relative path to sieve storage in active 
link: sieve/
lda(user): Debug: sieve: file storage: Using Sieve script path: 
/data/home/user/.dovecot.sieve
lda(user): Debug: sieve: file script: Opened script `test-foofilter' from 
`/data/home/user/.dovecot.sieve'
lda(user): Debug: sieve: Using the following location for user's Sieve script: 
/data/home/user/.dovecot.sieve
lda(user): Debug: Mailbox stdin: Opened mail UID=1 because: header Message-ID 
(Cache file is unusable)
lda(user): Debug: sieve: Opening script 1 of 1 from 
`/data/home/user/.dovecot.sieve'
lda(user): Debug: sieve: Loading script /data/home/user/.dovecot.sieve
lda(user): Debug: sieve: Script binary /data/home/user/.dovecot.svbin 
successfully loaded
lda(user): Debug: sieve: binary save: not saving binary 
/data/home/user/.dovecot.svbin, because it is already stored
lda(user): Debug: sieve: Executing script from `/data/home/user/.dovecot.svbin'
lda(user): Debug: sieve: action execute: running program: foofilter
lda(user): Debug: Mailbox stdin: Opened mail UID=1 because: mail stream
lda(user): Debug: waiting for program 
`/usr/local/lib/dovecot/sieve-execute/foofilter' to finish after 0 msecs
lda(user): Debug: program 
`/usr/local/lib/dovecot/sieve-execute/foofilter'(24669) execution timed out 
after 2000 milliseconds: sending TERM signal
lda(user): Debug: program `/usr/local/lib/dovecot/sieve-execute/foofilter' 
(24669) did not die after 5000 milliseconds: sending KILL signal


and an strace on the dovecot-lda process shows it is in an
"epoll_wait(9 ....".

The script is very simple:

#! /bin/sh

cat > /dev/null
exit 1


Anyone has a clue? Thanks in advance.

Best Regards,

Lionel

Reply via email to