Crash in director for secure lmtp proxy connections
Hi,
After updating some of our director servers from 2.2.36 to 2.3.3 (dcead646b) we experience crashes in about 1/5000 mails in lmtp delivery:
Nov 13 12:23:36 Fatal: lmtp(113620): master: service(lmtp): child 113620 killed with signal 6 (core dumped) Nov 13 12:23:36 Panic: lmtp(113623): file ostream-dot.c: line 208 (o_stream_dot_sendv): assertion failed: ((size_t)ret == sent + added) Nov 13 12:23:36 Error: lmtp(113623): Raw backtrace: /usr/lib64/dovecot/libdovecot.so.0(+0xe34fb) [0x7f31d89134fb] -> /usr/lib64/dovecot/libdovecot.so.0(+0xe3597) [0x7f31d8913597] -> /usr/lib64/dovecot/libdovecot.so.0(+0x51207) [0x7f31d8881207] -> /usr/lib64/dovecot/libdovecot.so.0(+0x4eeef) [0x7f31d887eeef] -> /usr/lib64/dovecot/libdovecot.so.0(+0x107cf8) [0x7f31d8937cf8] -> /usr/lib64/dovecot/libdovecot.so.0(o_stream_sendv+0x32) [0x7f31d89382c2] -> /usr/lib64/dovecot/libdovecot.so.0(io_stream_copy+0x5a) [0x7f31d8938b6a] -> /usr/lib64/dovecot/libdovecot.so.0(o_stream_send_istream+0x53) [0x7f31d8938873] -> /usr/lib64/dovecot/libdovecot.so.0(smtp_client_command_send_more+0x145) [0x7f31d8890805] -> /usr/lib64/dovecot/libdovecot.so.0(+0x660dd) [0x7f31d88960dd] -> /usr/lib64/dovecot/libssl_iostream_openssl.so(+0xa7e1) [0x7f31d864a7e1] -> /usr/lib64/dovecot/libdovecot.so.0(+0x10a558) [0x7f31d893a558] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x73) [0x7f31d892a203] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x136) [0x7f31d892b8b6] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x50) [0x7f31d892a2b0] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x48) [0x7f31d892a418] -> /usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x17) [0x7f31d88a95a7] -> dovecot/lmtp(main+0x245) [0x555b8b59cea5] -> /lib64/libc.so.6(__libc_start_main+0xf3) [0x7f31d867c413] -> dovecot/lmtp(_start+0x2e) [0x555b8b59cfbe] Nov 13 12:23:36 Fatal: lmtp(113623): master: service(lmtp): child 113623 killed with signal 6 (core dumped)
On the backend servers the only message is lmtp(9571): Disconnect from 192.168.1.56: Connection closed (in DATA)
This happens for every server with this version every time postfix tries to resend the mail.
After removing "starttls=y" from the static passdb entry, the mail is sent successfully. Starting with version 2.3.2 the lmtp proxy uses starttls as well, therefore the error seems to be there. I've not been able to figure out, if this has to do with the content of the mails, because they are from many different sources.
Thanks! Marcus
On 21.11.2018 15.21, Marcus Fenner wrote:
Hi,
After updating some of our director servers from 2.2.36 to 2.3.3 (dcead646b) we experience crashes in about 1/5000 mails in lmtp delivery:
Nov 13 12:23:36 Fatal: lmtp(113620): master: service(lmtp): child 113620 killed with signal 6 (core dumped) Nov 13 12:23:36 Panic: lmtp(113623): file ostream-dot.c: line 208 (o_stream_dot_sendv): assertion failed: ((size_t)ret == sent + added) Nov 13 12:23:36 Error: lmtp(113623): Raw backtrace: /usr/lib64/dovecot/libdovecot.so.0(+0xe34fb) [0x7f31d89134fb] -> /usr/lib64/dovecot/libdovecot.so.0(+0xe3597) [0x7f31d8913597] -> /usr/lib64/dovecot/libdovecot.so.0(+0x51207) [0x7f31d8881207] -> /usr/lib64/dovecot/libdovecot.so.0(+0x4eeef) [0x7f31d887eeef] -> /usr/lib64/dovecot/libdovecot.so.0(+0x107cf8) [0x7f31d8937cf8] -> /usr/lib64/dovecot/libdovecot.so.0(o_stream_sendv+0x32) [0x7f31d89382c2] -> /usr/lib64/dovecot/libdovecot.so.0(io_stream_copy+0x5a) [0x7f31d8938b6a] -> /usr/lib64/dovecot/libdovecot.so.0(o_stream_send_istream+0x53) [0x7f31d8938873] -> /usr/lib64/dovecot/libdovecot.so.0(smtp_client_command_send_more+0x145) [0x7f31d8890805] -> /usr/lib64/dovecot/libdovecot.so.0(+0x660dd) [0x7f31d88960dd] -> /usr/lib64/dovecot/libssl_iostream_openssl.so(+0xa7e1) [0x7f31d864a7e1] -> /usr/lib64/dovecot/libdovecot.so.0(+0x10a558) [0x7f31d893a558] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x73) [0x7f31d892a203] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x136) [0x7f31d892b8b6] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x50) [0x7f31d892a2b0] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x48) [0x7f31d892a418] -> /usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x17) [0x7f31d88a95a7] -> dovecot/lmtp(main+0x245) [0x555b8b59cea5] -> /lib64/libc.so.6(__libc_start_main+0xf3) [0x7f31d867c413] -> dovecot/lmtp(_start+0x2e) [0x555b8b59cfbe] Nov 13 12:23:36 Fatal: lmtp(113623): master: service(lmtp): child 113623 killed with signal 6 (core dumped)
On the backend servers the only message is lmtp(9571): Disconnect from 192.168.1.56: Connection closed (in DATA)
This happens for every server with this version every time postfix tries to resend the mail.
After removing "starttls=y" from the static passdb entry, the mail is sent successfully. Starting with version 2.3.2 the lmtp proxy uses starttls as well, therefore the error seems to be there. I've not been able to figure out, if this has to do with the content of the mails, because they are from many different sources.
Thanks! Marcus
Hi!
Thanks for reporting this bug, we'll look into it!
Aki
Op 21/11/2018 om 14:21 schreef Marcus Fenner:
Hi,
After updating some of our director servers from 2.2.36 to 2.3.3 (dcead646b) we experience crashes in about 1/5000 mails in lmtp delivery:
Nov 13 12:23:36 Fatal: lmtp(113620): master: service(lmtp): child 113620 killed with signal 6 (core dumped) Nov 13 12:23:36 Panic: lmtp(113623): file ostream-dot.c: line 208 (o_stream_dot_sendv): assertion failed: ((size_t)ret == sent + added) Nov 13 12:23:36 Error: lmtp(113623): Raw backtrace: /usr/lib64/dovecot/libdovecot.so.0(+0xe34fb) [0x7f31d89134fb] -> /usr/lib64/dovecot/libdovecot.so.0(+0xe3597) [0x7f31d8913597] -> /usr/lib64/dovecot/libdovecot.so.0(+0x51207) [0x7f31d8881207] -> /usr/lib64/dovecot/libdovecot.so.0(+0x4eeef) [0x7f31d887eeef] -> /usr/lib64/dovecot/libdovecot.so.0(+0x107cf8) [0x7f31d8937cf8] -> /usr/lib64/dovecot/libdovecot.so.0(o_stream_sendv+0x32) [0x7f31d89382c2] -> /usr/lib64/dovecot/libdovecot.so.0(io_stream_copy+0x5a) [0x7f31d8938b6a] -> /usr/lib64/dovecot/libdovecot.so.0(o_stream_send_istream+0x53) [0x7f31d8938873] -> /usr/lib64/dovecot/libdovecot.so.0(smtp_client_command_send_more+0x145) [0x7f31d8890805] -> /usr/lib64/dovecot/libdovecot.so.0(+0x660dd) [0x7f31d88960dd] -> /usr/lib64/dovecot/libssl_iostream_openssl.so(+0xa7e1) [0x7f31d864a7e1] -> /usr/lib64/dovecot/libdovecot.so.0(+0x10a558) [0x7f31d893a558] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x73) [0x7f31d892a203] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x136) [0x7f31d892b8b6] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x50) [0x7f31d892a2b0] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x48) [0x7f31d892a418] -> /usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x17) [0x7f31d88a95a7] -> dovecot/lmtp(main+0x245) [0x555b8b59cea5] -> /lib64/libc.so.6(__libc_start_main+0xf3) [0x7f31d867c413] -> dovecot/lmtp(_start+0x2e) [0x555b8b59cfbe] Nov 13 12:23:36 Fatal: lmtp(113623): master: service(lmtp): child 113623 killed with signal 6 (core dumped)
On the backend servers the only message is lmtp(9571): Disconnect from 192.168.1.56: Connection closed (in DATA)
This happens for every server with this version every time postfix tries to resend the mail.
After removing "starttls=y" from the static passdb entry, the mail is sent successfully. Starting with version 2.3.2 the lmtp proxy uses starttls as well, therefore the error seems to be there. I've not been able to figure out, if this has to do with the content of the mails, because they are from many different sources.
Fix is included in 2.3.5.
Regards,
Stephan.
participants (3)
-
Aki Tuomi
-
Marcus Fenner
-
Stephan Bosch