Hi,
dovecot is crashing for me while doing sieve processing for messages received via lmtp. This is reproducible, and seems to hit every message which runs a particular sieve script. Any thoughts or help would be appreciated! The error is:
Error: sieve: fail2ban: line 23: read(<lmtp DATA local>) failed: Seeking past EOF by 2364 bytes
Note: the number of bytes is always one of: 2169, 2272, 2259, 2364. I have many of these.
I cannot see how the "Seeking past EOF" error can be caused by a bug in my sieve script. But please let me know if it can!
Background: I have (and have had for many years) a complex set of sieve scripts for controlling my incoming email. They have worked fine for all that time. However, recently (ish), processing which uses a particular script is crashing dovecot. The actual log extract is below. The sieve script line 23, mentioned in the error report, is a large "if anyof (" statement containing many clauses like:
body :raw :regex "country:[[:space:]]+KR",
I can provide the full sieve script if required.
This is what I see in the dovecot log (note: I reformatted the backtrace to make it easier to read. I also changed all my server names):
Mar 29 03:03:52 SERVER dovecot-HOST: lmtp(4008073): Connect from local Mar 29 03:03:52 SERVER dovecot-HOST: lmtp(cobb)<4008073><PiAQHoiIyGmJKD0Ay7SJiA>: Error: sieve: fail2ban: line 23: read(<lmtp DATA local>) failed: Seeking past EOF by 2364 bytes Mar 29 03:03:52 SERVER dovecot-HOST: lmtp(cobb)<4008073><PiAQHoiIyGmJKD0Ay7SJiA>: Error: sieve: Execution of script 'auto:personal/.dovecot' was aborted due to temporary failure (user logfile /home/cobb/.dovecot.sieve.log may reveal additional details) Mar 29 03:03:52 SERVER dovecot-HOST: lmtp(cobb)<4008073><PiAQHoiIyGmJKD0Ay7SJiA>: Panic: file istream-concat.c: line 27 (i_stream_concat_close): assertion failed: (cstream->cur_input == cstream->input[cstream->cur_idx]) Mar 29 03:03:52 SERVER dovecot-HOST: lmtp(cobb)<4008073><PiAQHoiIyGmJKD0Ay7SJiA>: Error: Raw backtrace:
#1 [unw_get_proc_name() failed: -10]
-> #2 [unw_get_proc_name() failed: -10]
-> #3 i_panic[0x7f41540655e6]
-> #4 [unw_get_proc_name() failed: -10]
-> #5 io_stream_unref[0x7f415413c120]
-> #6 i_stream_unref[0x7f4154145c30]
-> #7 index_storage_mailbox_close[0x7f4154383e70]
-> #8 mailbox_close[0x7f41542fd9e0]
-> #9 mailbox_free[0x7f4154302ab0]
-> #10 lmtp_local_deinit[0x55dfa9c4e320]
-> #11 client_state_reset[0x55dfa9c4f0d0]
-> #12 smtp_server_transaction_free[0x7f4154091880]
-> #13 smtp_server_connection_reset_state[0x7f4154093c90]
-> #14 smtp_server_command_call_hooks[0x7f415408be60]
-> #15 smtp_server_command_send_replies[0x7f4154090050]
-> #16 [unw_get_proc_name() failed: -10]
-> #17 [unw_get_proc_name() failed: -10]
-> #18 io_loop_call_io[0x7f4154151710]
-> #19 io_loop_handler_run_internal[0x7f41541534b0]
-> #20 io_loop_handler_run[0x7f4154153640]
-> #21 io_loop_run[0x7f4154153820]
-> #22 master_service_run[0x7f41540a6330]
-> #23 main[0x55dfa9c4a260]
-> #24 __libc_start_call_main[0x7f4153e32c30]
-> #25 __libc_start_main_alias_2[0x7f4153e32ce0]
-> #26 _start[0x55dfa9c4a470]
Mar 29 03:03:54 SERVER dovecot-HOST: lmtp(cobb)<4008073><PiAQHoiIyGmJKD0Ay7SJiA>: Fatal: master: service(lmtp): child 4008073 killed with signal 6 (core dumped) Mar 29 03:04:05 SERVER postfix/lmtp[4008072]: 005083DC75D: to=<MYADDRESS@MYDOMAIN>, orig_to=<ANOTHER@ANOTHERDOMAIN>, relay=SERVERNAME[private/dovecot-lmtp], delay=1740676, delays=1740674/0.25/0.04/1.5, dsn=4.4.2, status=deferred (lost connection with SERVERNAME[private/dovecot-lmtp] while sending end of data -- message may be sent more than once)
The only message in .dovecot.sieve.log is:
fail2ban: line 23: error: failed to read input message: internal error occurred: refer to server log for more information. [2026-04-01 18:54:13].
Thanks in advance for any thoughts!
Graham