Learning ham/spam with IMAPSieve: sa-learn-ham.sh terminated abnormally, signal 11

Stephan Bosch stephan at rename-it.nl
Mon Nov 18 10:50:29 EET 2019



On 17/11/2019 19:40, Jens Rey via dovecot wrote:
> Since I want to avoid debugging old and already fixed bugs, I updated to
>
> # dovecot --version
> 2.3.8 (9df20d2db)
>
> Now the debug log is a bit more chatty, but the error remains:
>
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh: Created
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh: Pass 
> environment: USER=user at domain.tld
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh: Pass 
> environment: HOME=/var/vmail/mailboxes/domain.tld/user
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh: Pass 
> environment: HOST=mail.domain.tld
> Debug: Mailbox INBOX: UID 22039: Opened mail because: mail stream
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh: 
> Establishing connection
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh: Forked 
> child process
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh (9891): 
> Connected to program
> Error: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh (9891): 
> write(program stdin) failed: Broken pipe
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh (9891): 
> Failed to run program
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh (9891): 
> Disconnected
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh (9891): 
> Child process ended
> Error: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh (9891): 
> Terminated abnormally with signal 11
> Debug: program exec:/usr/lib/dovecot/sieve/rspamd-learn-ham.sh (9891): 
> Destroy
> Error: sieve: pipe action: failed to pipe message to program 
> `rspamd-learn-ham.sh': refer to server log for more information. 
> [2019-11-17 19:32:40]
> sieve: left message in mailbox 'INBOX'
> Error: sieve: Execution of script 
> /usr/lib/dovecot/sieve/report-ham.sieve failed

Dovecot forks a child process to execute the program. Subsequently, at 
some point, the child process fails with a segmentation fault. Granted, 
that could still be happening in Dovecot code, but since the child 
process quickly executes the actual program (the shell in this case), it 
is more likely that this problem emerges outside Dovecot.

You can attach GDB to imap with follow-fork-mode set to 'child', so you 
can maybe see what causes the segfault.

Regards,

Stephan.




More information about the dovecot mailing list