Hi!
After installing dovecot 2.3.20 from...
https://repo.dovecot.org/ce-2.3-latest/debian/bullseye/pool/main/
...in Debian 11...
# dpkg -s dovecot-core | grep Version
Version: 2:2.3.20-3+debian11
...problem still exists. Logs (with exim's debug enabled):
2023-08-10 19:26:39 myhost exim[...]: 54 SMTP>> 550-aa bb
ccc dd gg hh ii jj
2023-08-10 19:26:39 myhost exim[...]: 54 SMTP>> 550-kk
mm nnn o ppp rr ss t w xxx
2023-08-10 19:26:39 myhost exim[...]: 54 SMTP>> 550-yy
aa bbb dd ee fff gg hhh
2023-08-10 19:26:39 myhost exim[...]: 54 SMTP>> 550- jj
kk ll mm o ppp r tt
2023-08-10 19:26:39 myhost exim[...]: 54 SMTP>> 550 u www
xxx yyy z a b ccc ddd
2023-08-10 19:26:39 myhost exim[...]: 54 LOG: MAIN REJECT
2023-08-10 19:26:39 myhost exim[...]: 54 [...] rejected RCPT
<[...]>: aa bb ccc dd gg
hh ii jj kk mm nnn o ppp rr ss t
w xxx yy aa bbb dd ee fff
gg hhh jj kk ll mm o ppp r
tt u www xxx yyy z a b ccc ddd
2023-08-10 19:26:39 myhost dovecot:
submission(test)<300>: Panic: file
smtp-server-reply.c: line 625 (smtp_server_reply_send_real): assertion
failed: (text[0] == '-')
2023-08-10 19:26:39 myhost dovecot:
submission(test)<300>: Error: Raw backtrace:
/usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7fd0e7a45872]
-> /usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7fd0e7a4598e]
-> /usr/lib/dovecot/libdovecot.so.0(+0x1025eb) [0x7fd0e7a525eb] ->
/usr/lib/dovecot/libdovecot.so.0(+0x102681) [0x7fd0e7a52681] ->
/usr/lib/dovecot/libdovecot.so.0(+0x55589) [0x7fd0e79a5589] ->
/usr/lib/dovecot/libdovecot.so.0(+0x48b8d) [0x7fd0e7998b8d] ->
/usr/lib/dovecot/libdovecot.so.0(smtp_server_command_send_replies+0x95)
[0x7fd0e79ca055] -> /usr/lib/dovecot/libdovecot.so.0(+0x7e0e2)
[0x7fd0e79ce0e2] -> /usr/lib/dovecot/libdovecot.so.0(+0x129621)
[0x7fd0e7a79621] ->
/usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x69) [0x7fd0e7a68819]
-> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x132)
[0x7fd0e7a69f02] ->
/usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x50)
[0x7fd0e7a688c0] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40)
[0x7fd0e7a68a80] ->
/usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13)
[0x7fd0e79db3c3] -> dovecot/submission(main+0x4ea) [0x558050a6118a] ->
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7fd0e779dd0a]
-> dovecot/submission(_start+0x2a) [0x558050a6121a]
Dovecot does not panic when exim's error message is changed to short,
single line string...
2023-08-10 19:41:53 myhost exim[...] 53 SMTP>> 550 aa bb
ccc dd gg hh ii jj
2023-08-10 19:41:53 myhost exim[...] 53 LOG: MAIN REJECT
...so problem is caused by dovecot's multiline SMTP reponse parsing
stuff probably; maybe assertion in smtp-server-reply.c:625
https://github.com/dovecot/core/blob/main/src/lib-smtp/smtp-server-reply.c#L625
should not be called because exim's response last line starts with " "
not "-"?
Pawel
W dniu 10.08.2023 o 18:53, Aki Tuomi pisze:
Hi!
Can you try with latest 2.3.20 fromhttps://repo.dovecot.org please? 2.3.13 is
quite old already.
Aki
On 10/08/2023 18:16 EEST IB Development Team via dovecot
wrote:
Hi,
If SMTP server rejects RCPT with message
aaa bb ccc dd gg hh
ii jj kk mm nnn o ppp rr ss t
w xxx yy aa bbb dd ee fff
gg hhh jj kk ll mm o ppp r
tt u www xxx yyy z a b ccc ddd
when submitting message via dovecot submisstion server, dovecot panics:
2023-08-10 17:10:04 myhost exim[...] rejected RCPT <[...]>: aa
bb ccc dd gg hh ii jj
kk mm nnn o ppp rr ss t w
xxx yy aa bbb dd ee fff gg
hhh jj kk ll mm o ppp r
tt u www xxx yyy z a b ccc ddd
2023-08-10 17:10:04 myhost dovecot:
submission(test)<7274>: Panic: file
smtp-server-reply.c: line 625 (smtp_server_reply_send_real): assertion
failed: (text[0] == '-')
2023-08-10 17:10:04 myhost dovecot:
submission(test)<7274>: Error: Raw backtrace:
/