[Dovecot] Dovecot 2.0beta3: Latest HG crashed upon LMTP Delivery
Hi,
unsure how to provide more useful information, as I can not get LMTP to create a core dump. With the latest changes from Mercurial it dies upon message delivery:
==> /var/log/dovecot.log <== Mar 8 20:03:33 spectre dovecot: lmtp(11690): Connect from local Mar 8 20:03:33 spectre dovecot: lmtp(11690): Connect from local Mar 8 20:03:33 spectre dovecot: lmtp(11690): Connect from local Mar 8 20:03:33 spectre dovecot: master: service(lmtp): child 11690 killed with signal 11 (core not dumped) Mar 8 20:03:33 spectre dovecot: master: service(lmtp): command startup failed, throttling
Thomas
Simple LMTP handshake crashes it:
[20:19] root spectre:/usr/lib/dovecot# ./lmtp 220 spectre.leuxner.net Dovecot LMTP ready Info: Connect from local lhlo leuxner.net 250-spectre.leuxner.net 250-8BITMIME 250-ENHANCEDSTATUSCODES 250 PIPELINING mail from:tlx@leuxner.net 250 2.1.0 OK rcpt to:tlx@leuxner.net 250 2.1.5 OK data 354 OK test .
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7f08f26006e0 (LWP 11784)] 0x00007f08f1ee1630 in message_parse_header_next () from /usr/lib/dovecot/libdovecot.so.0 (gdb) bt full #0 0x00007f08f1ee1630 in message_parse_header_next () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #1 0x00007f08f1ee2fb3 in ?? () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #2 0x00007f08f1ee2659 in message_parser_parse_next_block () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #3 0x00007f08f1ee286b in message_parser_parse_header () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #4 0x00007f08f2193c40 in index_mail_parse_headers () from /usr/lib/dovecot/libdovecot-storage.so.0 No symbol table info available. #5 0x00007f08f2193f77 in ?? () from /usr/lib/dovecot/libdovecot-storage.so.0 No symbol table info available. #6 0x00007f08f21942df in index_mail_get_first_header () from /usr/lib/dovecot/libdovecot-storage.so.0 No symbol table info available. #7 0x00007f08f0f21846 in ?? () from /usr/lib/dovecot/modules/lib90_sieve_plugin.so No symbol table info available. #8 0x000000000040a663 in mail_deliver () No symbol table info available. #9 0x0000000000406a53 in ?? () No symbol table info available. #10 0x0000000000406fc8 in ?? () No symbol table info available. #11 0x00007f08f1efc00b in io_loop_handler_run () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #12 0x00007f08f1efb188 in io_loop_run () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #13 0x00007f08f1eeb193 in master_service_run () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #14 0x0000000000405be3 in main () No symbol table info available.
Thomas Leuxner tlx@leuxner.net wrote:
Simple LMTP handshake crashes it:
Same here. I'm pretty sure it has been introduced with one of these two changes:
dovecot (2:2.0.beta3-0~auto+24) unstable; urgency=low
- New revision (10855:681e1c702899) in dovecot Mercurial repository:
- zlib: Several fixes to zlib/bzlib istreams.
- Simplified up istream-limit implementation.
-- Stephan Bosch stephan@rename-it.nl Mon, 08 Mar 2010 15:13:34 +0200
(+23 worked fine, crashes since installing +24).
Unfortunately Stephan has already deleted the +23 .debs from his server so I can't verify with the old version.
Bernhard
Bernhard Schmidt berni@birkenwald.de wrote:
Simple LMTP handshake crashes it: Same here. I'm pretty sure it has been introduced with one of these two changes:
Affects dovecot-lda as well:
mail.svr02.mucip.net:/var/run/dovecot# sudo -u vmail gdb /usr/lib/dovecot/dovecot-lda GNU gdb (GDB) 7.0.1-debian Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/... Reading symbols from /usr/lib/dovecot/dovecot-lda...Reading symbols from /usr/lib/debug/usr/lib/dovecot/dovecot-lda...done. (no debugging symbols found)...done. (gdb) set args -d berni (gdb) run Starting program: /usr/lib/dovecot/dovecot-lda -d berni [Thread debugging using libthread_db enabled] Executing new program: /usr/bin/doveconf [Thread debugging using libthread_db enabled] Executing new program: /usr/lib/dovecot/dovecot-lda [Thread debugging using libthread_db enabled] asjk
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff78d21c0 in message_parse_header_next (ctx=0x6427b0,
hdr_r=<value optimized out>)
at message-header-parser.c:196
196 message-header-parser.c: Datei oder Verzeichnis nicht gefunden.
in message-header-parser.c
(gdb) bt full
#0 0x00007ffff78d21c0 in message_parse_header_next (ctx=0x6427b0,
hdr_r=<value optimized out>)
at message-header-parser.c:196
msg = 0x64c3d9 ""
i = 23591
size = 18446744073709464054
startpos = 0
colon_pos = 520
parse_size = 18446744073709464053
ret = <value optimized out>
continues = <value optimized out>
no_newline = <value optimized out>
crlf_newline = <value optimized out>
__PRETTY_FUNCTION__ = "message_parse_header_next"
#1 0x00007ffff78d3a97 in parse_next_header (ctx=0x64c588,
block_r=0x7fffffffcca0) at message-parser.c:480
part = 0x646f10
hdr = <value optimized out>
size = <value optimized out>
ret = <value optimized out>
__PRETTY_FUNCTION__ = "parse_next_header"
#2 0x00007ffff78d3149 in message_parser_parse_next_block (ctx=0x64c588,
block_r=0x7fffffffcca0)
at message-parser.c:768
ret = 23591
eof = false
full = false
__PRETTY_FUNCTION__ = "message_parser_parse_next_block"
#3 0x00007ffff78d334b in message_parser_parse_header (ctx=0x64c588,
hdr_size=0x646860,
callback=0x7ffff7b83a90
I'm now on +27 (10867:c56358283605), still crashing.
Bernhard
On Mon, 2010-03-08 at 20:15 +0000, Bernhard Schmidt wrote:
Simple LMTP handshake crashes it:
- Simplified up istream-limit implementation.
Yeah, it's this one. I'll probably revert it soon. I did it mostly while trying to fix istream-zlib bugs, but hopefully zlib won't break when that change is reverted :) Started my stress test again..
On Tue, Mar 09, 2010 at 01:04:44AM +0200, Timo Sirainen wrote:
Yeah, it's this one. I'll probably revert it soon. I did it mostly while trying to fix istream-zlib bugs, but hopefully zlib won't break when that change is reverted :) Started my stress test again..
Just tested and does not appear to be fixed by changeset 10875 1473de6ba383. Still crashes.
Regards Thomas
On Tue, 2010-03-09 at 11:31 +0100, Thomas Leuxner wrote:
On Tue, Mar 09, 2010 at 01:04:44AM +0200, Timo Sirainen wrote:
Yeah, it's this one. I'll probably revert it soon. I did it mostly while trying to fix istream-zlib bugs, but hopefully zlib won't break when that change is reverted :) Started my stress test again..
Just tested and does not appear to be fixed by changeset 10875 1473de6ba383. Still crashes.
With LMTP or also with LDA? What's the backtrace now? It seems to be working with me.
On Tue, Mar 09, 2010 at 01:21:40PM +0200, Timo Sirainen wrote:
With LMTP or also with LDA? What's the backtrace now? It seems to be working with me.
Only tested with LMTP as not using LDA anymore, but in the same manner, with a simple handshake:
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7f40f2dde6e0 (LWP 26430)] 0x00007f40f26be630 in message_parse_header_next () from /usr/lib/dovecot/libdovecot.so.0 (gdb) bt full #0 0x00007f40f26be630 in message_parse_header_next () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #1 0x00007f40f26bffb3 in ?? () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #2 0x00007f40f26bf659 in message_parser_parse_next_block () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #3 0x00007f40f26bf86b in message_parser_parse_header () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #4 0x00007f40f2970c10 in index_mail_parse_headers () from /usr/lib/dovecot/libdovecot-storage.so.0 No symbol table info available. #5 0x00007f40f2970f47 in ?? () from /usr/lib/dovecot/libdovecot-storage.so.0 No symbol table info available. #6 0x00007f40f29712af in index_mail_get_first_header () from /usr/lib/dovecot/libdovecot-storage.so.0 No symbol table info available. #7 0x00007f40f16fe846 in ?? () from /usr/lib/dovecot/modules/lib90_sieve_plugin.so No symbol table info available. #8 0x000000000040a663 in mail_deliver () No symbol table info available. #9 0x0000000000406a53 in ?? () No symbol table info available. #10 0x0000000000406fc8 in ?? () No symbol table info available. #11 0x00007f40f26d900b in io_loop_handler_run () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #12 0x00007f40f26d8188 in io_loop_run () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #13 0x00007f40f26c8193 in master_service_run () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #14 0x0000000000405be3 in main () No symbol table info available.
Thomas
changeset 10876 370ee9717a6c "config: Forgot to add header file" seems to have fixed for LMTP.
Thanks Thomas
Thomas Leuxner tlx@leuxner.net wrote:
Yeah, it's this one. I'll probably revert it soon. I did it mostly while trying to fix istream-zlib bugs, but hopefully zlib won't break when that change is reverted :) Started my stress test again.. Just tested and does not appear to be fixed by changeset 10875 1473de6ba383. Still crashes.
I'm a bit confused.
My local build of Stephan Bosch's +28 package (containing everything up to 10869) plus 10875:1473de6ba383 is fine. Stephan's +29 package which supposedly contains everything up to 10875 is broken (crash in LMTP/deliver). At the same time +29 is fine regarding the IPv6 listen address (although my prime suspects, "config: Added support for reading v1.2 config files." and "master: Don't complain about duplicate inet_listeners with port=0 (they're ignored)." are supposedly included), while +30 breaks.
Stephan, could you check whether your changelog vs. content is in sync?
Bernhard
participants (3)
-
Bernhard Schmidt
-
Thomas Leuxner
-
Timo Sirainen