Dovecot submission panics on SMTP RCPT error
Hi,
If SMTP server rejects RCPT with message
aaa bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd
when submitting message via dovecot submisstion server, dovecot panics:
2023-08-10 17:10:04 myhost exim[...] rejected RCPT <[...]>: aa bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd
2023-08-10 17:10:04 myhost dovecot:
submission(test)<7274>
2023-08-10 17:10:04 myhost dovecot:
submission(test)<7274>
Error message is configured in exim4.conf with
begin routers
mytestrouter: [...] cannot_route_message = aa bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd
Dovecot installed from up-to-date Debian 11 package:
# dpkg -s dovecot-core | grep Version Version: 1:2.3.13+dfsg1-2+deb11u1
-- Regards, Paweł Bogusławski
IB Development Team E: dev@ib.pl
Hi!
Can you try with latest 2.3.20 from https://repo.dovecot.org please? 2.3.13 is quite old already.
Aki
On 10/08/2023 18:16 EEST IB Development Team via dovecot dovecot@dovecot.org wrote:
Hi,
If SMTP server rejects RCPT with message
aaa bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd
when submitting message via dovecot submisstion server, dovecot panics:
2023-08-10 17:10:04 myhost exim[...] rejected RCPT <[...]>: aa bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd
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: /usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7f64c8e484e2] -> /usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f64c8e485fe] -> /usr/lib/dovecot/libdovecot.so.0(+0xfc49b) [0x7f64c8e5449b] -> /usr/lib/dovecot/libdovecot.so.0(+0xfc531) [0x7f64c8e54531] -> /usr/lib/dovecot/libdovecot.so.0(+0x53aee) [0x7f64c8dabaee] -> /usr/lib/dovecot/libdovecot.so.0(+0x4751c) [0x7f64c8d9f51c] -> /usr/lib/dovecot/libdovecot.so.0(+0x7b605) [0x7f64c8dd3605] -> /usr/lib/dovecot/libdovecot.so.0(+0x122171) [0x7f64c8e7a171] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x69) [0x7f64c8e69f59] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x132) [0x7f64c8e6b592] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x50) [0x7f64c8e6a000] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40) [0x7f64c8e6a1c0] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f64c8de04e3] -> dovecot/submission(main+0x4df) [0x562f3ac7c11f] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7f64c8ba4d0a] -> dovecot/submission(_start+0x2a) [0x562f3ac7c1aa] Error message is configured in exim4.conf with
begin routers
mytestrouter: [...] cannot_route_message = aa bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd
Dovecot installed from up-to-date Debian 11 package:
# dpkg -s dovecot-core | grep Version Version: 1:2.3.13+dfsg1-2+deb11u1
-- Regards, Paweł Bogusławski
IB Development Team E: dev@ib.pl
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
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 bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj 2023-08-10 19:26:39 myhost exim[...]: 54 SMTP>> 550-kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx 2023-08-10 19:26:39 myhost exim[...]: 54 SMTP>> 550-yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh 2023-08-10 19:26:39 myhost exim[...]: 54 SMTP>> 550-iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt 2023-08-10 19:26:39 myhost exim[...]: 54 SMTP>> 550 uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd 2023-08-10 19:26:39 myhost exim[...]: 54 LOG: MAIN REJECT 2023-08-10 19:26:39 myhost exim[...]: 54 [...] rejected RCPT <[...]>: aa bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd 2023-08-10 19:26:39 myhost dovecot: submission(test)<300><cg4X5pQCaLTAqHoB>: 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><cg4X5pQCaLTAqHoB>: 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 bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii 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#L...
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 dovecotdovecot@dovecot.org wrote:
Hi,
If SMTP server rejects RCPT with message
aaa bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd
when submitting message via dovecot submisstion server, dovecot panics:
2023-08-10 17:10:04 myhost exim[...] rejected RCPT <[...]>: aa bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd
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: /usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7f64c8e484e2] -> /usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f64c8e485fe] -> /usr/lib/dovecot/libdovecot.so.0(+0xfc49b) [0x7f64c8e5449b] -> /usr/lib/dovecot/libdovecot.so.0(+0xfc531) [0x7f64c8e54531] -> /usr/lib/dovecot/libdovecot.so.0(+0x53aee) [0x7f64c8dabaee] -> /usr/lib/dovecot/libdovecot.so.0(+0x4751c) [0x7f64c8d9f51c] -> /usr/lib/dovecot/libdovecot.so.0(+0x7b605) [0x7f64c8dd3605] -> /usr/lib/dovecot/libdovecot.so.0(+0x122171) [0x7f64c8e7a171] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x69) [0x7f64c8e69f59] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x132) [0x7f64c8e6b592] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x50) [0x7f64c8e6a000] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40) [0x7f64c8e6a1c0] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f64c8de04e3] -> dovecot/submission(main+0x4df) [0x562f3ac7c11f] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7f64c8ba4d0a] -> dovecot/submission(_start+0x2a) [0x562f3ac7c1aa] Error message is configured in exim4.conf with
begin routers
mytestrouter: [...] cannot_route_message = aa bbbbbbbbbb ccccccc dd eeeeeeeeeeee ffffffffffff gggggggggg hh iiiiii jj kk llll mmmmmmmmmm nnn o ppppppppppppppp rrrrrr ssssss t uuuu w xxxxxxx yyyyyy zzzzzzzz aa bbbbbbbbbbb cccccccc dd eeeeee fff gggggg hhhhhhh iiiiiiii jj kkkkkk ll mm nnnn ooooo ppppppp qqqq r ssss tttttt uuuuuuuuuuuuu www xxx yyyyyyy zzzzz aaaaa bbbbbbbbb ccc ddddddd
Dovecot installed from up-to-date Debian 11 package:
# dpkg -s dovecot-core | grep Version Version: 1:2.3.13+dfsg1-2+deb11u1
-- Regards, Paweł Bogusławski
IB Development Team E:dev@ib.pl
dovecot mailing list --dovecot@dovecot.org To unsubscribe send an email todovecot-leave@dovecot.org
-- Regards, Paweł Bogusławski
IB Development Team E:dev@ib.pl
participants (2)
-
Aki Tuomi
-
IB Development Team