Le 19/03/2013 07:24, Tonio a écrit :
Le 18 mars 2013 à 14:47, Timo Sirainen <tss@iki.fi> a écrit :
On Sat, 2013-03-16 at 13:51 +0100, tonio@starbridge.org wrote:
Hi Timo, I've got a crash with dovecot 2.2
dovecot --version 2.2.rc2 (69c26a9e3be5)
It's occured when accessing with imap on a large mailbox (around 50k messages)
imap(clean-quarantine@spamguard.fr): Panic: Buffer full (4254 > 4248, pool <none>) These should fix it: http://hg.dovecot.org/dovecot-2.2/rev/689dbeadf168 http://hg.dovecot.org/dovecot-2.2/rev/ee7352f46d1e
Thx Timo It's ok now
Regards Tonio
Hi Timo, since I've upgraded to 2.2.rc5 (c24783148d78), I've got the previous error again: It's happening on a large mailbox on almost every emails, with Horde 5 webmail client (works fine with thunderbird so far) Thanks for your help
Apr 7 21:30:58 mx2 dovecot: imap(clean-quarantine@spamguard.fr): Panic: Buffer full (8206 > 8192, pool <none>) Apr 7 21:30:58 mx2 dovecot: imap(clean-quarantine@spamguard.fr): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x608ea) [0x7f29866848ea] -> /usr/lib/dovecot/libdovecot.so.0(+0x6092e) [0x7f298668492e] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f2986646385] -> /usr/lib/dovecot/libdovecot.so.0(+0x5d198) [0x7f2986681198] -> /usr/lib/dovecot/libdovecot.so.0(+0x56d90) [0x7f298667ad90] -> /usr/lib/dovecot/libdovecot.so.0(+0x4fc1f) [0x7f2986673c1f] -> /usr/lib/dovecot/libdovecot.so.0(+0x4fc92) [0x7f2986673c92] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read+0x69) [0x7f298668ce39] -> /usr/lib/dovecot/libdovecot.so.0(+0x6ddac) [0x7f2986691dac] -> /usr/lib/dovecot/libdovecot.so.0(+0x6df59) [0x7f2986691f59] -> /usr/lib/dovecot/libdovecot.so.0(+0x6e04b) [0x7f298669204b] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read+0x69) [0x7f298668ce39] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) [0x7f298668d6bd] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0x9b524) [0x7f298697b524] -> /usr/lib/dovecot/libdovecot-storage.so.0(index_mail_get_binary_stream+0x77) [0x7f298697b9b7] -> /usr/lib/dovecot/libdovecot-storage.so.0(mail_get_binary_stream+0x60) [0x7f2986954590] -> /usr/lib/dovecot/libdovecot-storage.so.0(imap_msgpart_open+0x9f) [0x7f29869b0a3f] -> dovecot/imap() [0x418f35] -> dovecot/imap() [0x4175dd] -> dovecot/imap(imap_fetch_more+0x34) [0x418534] -> dovecot/imap(cmd_fetch+0x309) [0x40e2c9] -> dovecot/imap(command_exec+0x3c) [0x41621c] -> dovecot/imap() [0x415280] -> dovecot/imap() [0x41533a] -> dovecot/imap(client_handle_input+0x115) [0x4155f5] -> dovecot/imap(client_input+0x72) [0x4159a2] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36) [0x7f2986694186] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xd7) [0x7f2986694fd7] Apr 7 21:30:58 mx2 dovecot: imap(clean-quarantine@spamguard.fr): Fatal: master: service(imap): child 23573 killed with signal 6 (core dumped)
#0 0x00007f29862cc475 in raise () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) bt full #0 0x00007f29862cc475 in raise () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #1 0x00007f29862cf6f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6 No symbol table info available. #2 0x00007f29866848f8 in default_fatal_finish (type=<optimized out>, status=status@entry=0) at failures.c:191 backtrace = 0x62d6b0 "/usr/lib/dovecot/libdovecot.so.0(+0x608ea) [0x7f29866848ea] -> /usr/lib/dovecot/libdovecot.so.0(+0x6092e) [0x7f298668492e] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f2986646385] -> /usr/lib/d"... #3 0x00007f298668492e in i_internal_fatal_handler (ctx=0x7fffe230f150, format=<optimized out>, args=<optimized out>) at failures.c:652 status = 0 #4 0x00007f2986646385 in i_panic (format=format@entry=0x7f29866b3890 "Buffer full (%lu > %lu, pool %s)") at failures.c:263 ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0} args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffe230f240, reg_save_area = 0x7fffe230f180}} #5 0x00007f2986681198 in buffer_check_limits (data_size=38, pos=8168, buf=<optimized out>) at buffer.c:65 extra = <optimized out> new_size = 8206 #6 buffer_write (_buf=0x7fffe230f300, pos=8168, data=0x688beb, data_size=38) at buffer.c:178 buf = <optimized out> #7 0x00007f298667ad90 in quoted_printable_decode_full ( src=src@entry=0x686c20 ' ' <repeats 24 times>, "<br>\n", ' ' <repeats 20 times>, "</strong>\n", ' ' <repeats 16 times>, "</td>\n", ' ' <repeats 12 times>, "</tr>\n", ' ' <repeats 12 times>, "<tr height=3D\"36\" align=3D\"center\">\n", ' ' <repeats 16 times>, "<td width=3D\"62%\" >\n", ' ' <repeats 17 times>..., src_size=8192, src_pos_r=src_pos_r@entry=0x7fffe230f2f8, dest=dest@entry=0x7fffe230f300, eof=eof@entry=false) at quoted-printable.c:61 hexbuf = "3D" src_pos = <optimized out> pos = <optimized out> next = <optimized out> errors = <optimized out> #8 0x00007f298667af28 in quoted_printable_decode ( src=src@entry=0x686c20 ' ' <repeats 24 times>, "<br>\n", ' ' <repeats 20 times>, "</strong>\n", ' ' <repeats 16 times>, "</td>\n", ' ' <repeats 12 times>, "</tr>\n", ' ' <repeats 12 times>, "<tr height=3D\"36\" align=3D\"center\">\n", ' ' <repeats 16 times>, "<td width=3D\"62%\" >\n", ' ' <repeats 17 times>..., src_size=<optimized out>, src_pos_r=src_pos_r@entry=0x7fffe230f2f8, dest=dest@entry=0x7fffe230f300) at quoted-printable.c:109 No locals. #9 0x00007f2986673c1f in i_stream_qp_try_decode_input (bstream=bstream@entry=0x9f9e90, eof=eof@entry=false) at istream-qp-decoder.c:63 stream = 0x9f9e90
data = 0x686c20 ' ' <repeats 24 times>, "<br>\n", ' ' <repeats
20 times>, "</strong>\n", ' ' <repeats 16 times>, "</td>\n", ' ' <repeats 12 times>, "</tr>\n", ' ' <repeats 12 times>, "<tr height=3D\"36\" align=3D\"center\">\n", ' ' <repeats 16 times>, "<td width=3D\"62%\" >\n", ' ' <repeats 17 times>...
size =
8192
avail =
8192
buffer_avail = <optimized
out>
pos = <optimized
out>
buf = {data = 0xa08590, used = 8168, priv = {0xa08590, 0x0,
0x2000, 0x0, 0x0}}
ret = <optimized
out>
#10 0x00007f2986673c92 in i_stream_qp_decoder_read (stream=0x9f9e90) at istream-qp-decoder.c:103
bstream =
0x9f9e90
pre_count =
0
post_count = <optimized
out>
ret = <optimized
out>
prev_size =
8192
__FUNCTION__ =
"i_stream_qp_decoder_read"
#11 0x00007f298668ce39 in i_stream_read (stream=0x9f9ef0) at istream.c:135
_stream =
0x9f9e90
old_size =
0
ret = <optimized
out>
__FUNCTION__ =
"i_stream_read"
#12 0x00007f2986691dac in read_more (sstream=0x9fa360) at istream-seekable.c:140
size = <optimized
out>
ret = <optimized
out>
#13 0x00007f2986691f59 in read_from_buffer (sstream=sstream@entry=0x9fa360, ret_r=ret_r@entry=0x7fffe230f418) at istream-seekable.c:182
stream =
0x9fa360
data = <optimized
out>
size =
0
pos = <optimized out>
offset = <optimized
out>
__FUNCTION__ =
"read_from_buffer"
#14 0x00007f298669204b in i_stream_seekable_read (stream=0x9fa360) at istream-seekable.c:240
sstream =
0x9fa360
data = <optimized
out>
size = <optimized out>
pos = <optimized out>
ret = <optimized out>
__FUNCTION__ = "i_stream_seekable_read"
#15 0x00007f298668ce39 in i_stream_read (stream=stream@entry=0x9fa3c0) at istream.c:135 _stream = 0x9fa360 old_size = 0 ret = <optimized out> __FUNCTION__ = "i_stream_read" #16 0x00007f298668d6bd in i_stream_read_data (stream=stream@entry=0x9fa3c0, data_r=data_r@entry=0x7fffe230f500, size_r=size_r@entry=0x7fffe230f508, threshold=threshold@entry=0) at istream.c:465 ret = <optimized out> read_more = false __FUNCTION__ = "i_stream_read_data" #17 0x00007f298697b524 in blocks_count_lines (full_input=0x9fa3c0, ctx=0x7fffe230f510) at index-mail-binary.c:319 block_idx = 5 p = <optimized out> size = 0 data = 0x0 ret = <optimized out> cur_block = 0x62d488 block_count = 7 cur_offset = 3718 skip = <optimized out> #18 index_mail_read_binary_to_cache (_mail=_mail@entry=0x66d5b0, part=part@entry=0x672050, include_hdr=include_hdr@entry=false, binary_r=binary_r@entry=0x7fffe230f5c6, converted_r=converted_r@entry=0x7fffe230f5c7) at index-mail-binary.c:393 mail = 0x66d5b0 cache = 0x657b30 ctx = {mail = 0x66d5b0, input = 0x685ac0, has_nuls = false, converted = true, blocks = {arr = {buffer = 0x62d3d8, element_size = 24}, v = 0x62d3d8, v_modifiable = 0x62d3d8}, copy_start_offset = 16849} __FUNCTION__ = "index_mail_read_binary_to_cache" #19 0x00007f298697b9b7 in index_mail_get_binary_stream (_mail=0x66d5b0, part=0x672050, include_hdr=false, size_r=0x7fffe230f688, lines_r=<optimized out>, binary_r=0x7fffe230f67e, stream_r=0x7fffe230f750) at index-mail-binary.c:556 mail = 0x66d5b0 cache = 0x657b30 input = <optimized out> binary = <optimized out> converted = <optimized out> __FUNCTION__ = "index_mail_get_binary_stream" #20 0x00007f2986954590 in mail_get_binary_stream (mail=mail@entry=0x66d5b0, part=part@entry=0x672050, include_hdr=include_hdr@entry=false, size_r=size_r@entry=0x7fffe230f688, binary_r=binary_r@entry=0x7fffe230f67e, stream_r=stream_r@entry=0x7fffe230f750) at mail.c:243 _data_stack_cur_id = 5 p = 0x66d5b0 ret = <optimized out> #21 0x00007f29869b0a3f in imap_msgpart_open (mail=mail@entry=0x66d5b0, msgpart=0x669a30, result_r=result_r@entry=0x7fffe230f750) at imap-msgpart.c:645 part = 0x672050 part_size = {physical_size = 6681872, virtual_size = 0, lines = 6685192} size = <optimized out> include_hdr = false binary = <optimized out> use_partial_cache = <optimized out> ret = 0 #22 0x0000000000418f35 in fetch_body_msgpart (ctx=0x660208, mail=0x66d5b0, body=0x660838) at imap-fetch-body.c:164 result = {input = 0x0, size = 0, size_field = 0, binary_decoded_input_has_nuls = false} str = <optimized out> #23 0x00000000004175dd in imap_fetch_more_int (ctx=ctx@entry=0x660208, cancel=false) at imap-fetch.c:504 h = <optimized out> _data_stack_cur_id = 4 state = 0x660258 client = 0x65f510 handlers = 0x660538 count = 2 ret = <optimized out> __FUNCTION__ = "imap_fetch_more_int" #24 0x0000000000418534 in imap_fetch_more (ctx=0x660208, cmd=cmd@entry=0x6600f0) at imap-fetch.c:556 ret = <optimized out> __FUNCTION__ = "imap_fetch_more" #25 0x000000000040e2c9 in cmd_fetch (cmd=0x6600f0) at cmd-fetch.c:279 client = 0x65f510 ctx = 0x660208 args = 0x638a08 next_arg = <optimized out> list_arg = 0x8661fe60 search_args = 0x0 qresync_args = {qresync_sample_seqset = 0x638b68, qresync_sample_uidset = 0x0} messageset = 0x638b70 "1330796" send_vanished = <optimized out> ret = <optimized out> #26 0x000000000041621c in command_exec (cmd=cmd@entry=0x6600f0) at imap-commands.c:156 hook = 0x636d60 ret = <optimized out> #27 0x0000000000415280 in client_command_input (cmd=0x6600f0) at imap-client.c:775 client = 0x65f510 command = <optimized out> __FUNCTION__ = "client_command_input" #28 0x000000000041533a in client_command_input (cmd=0x6600f0) at imap-client.c:836 client = 0x65f510 command = <optimized out> __FUNCTION__ = "client_command_input" #29 0x00000000004155f5 in client_handle_next_command (remove_io_r=<synthetic pointer>, client=0x65f510) at imap-client.c:874 No locals. #30 client_handle_input (client=client@entry=0x65f510) at imap-client.c:886 _data_stack_cur_id = 3 ret = false remove_io = false handled_commands = false __FUNCTION__ = "client_handle_input" #31 0x00000000004159a2 in client_input (client=0x65f510) at imap-client.c:928 cmd = <optimized out> output = 0x65ff28 bytes = 37 __FUNCTION__ = "client_input" #32 0x00007f2986694186 in io_loop_call_io (io=0x65fff0) at ioloop.c:387 ioloop = 0x635700 t_id = 2 #33 0x00007f2986694fd7 in io_loop_handler_run (ioloop=ioloop@entry=0x635700) at ioloop-epoll.c:215 ctx = 0x635a70 events = 0x0 event = 0x635ae0 list = 0x660040 io = <optimized out> tv = {tv_sec = 1799, tv_usec = 999263} events_count = <optimized out> msecs = <optimized out> ret = 1 i = <optimized out> call = <optimized out> __FUNCTION__ = "io_loop_handler_run" #34 0x00007f2986693cc8 in io_loop_run (ioloop=0x635700) at ioloop.c:406 No locals. #35 0x00007f298664b513 in master_service_run (service=0x635590, callback=callback@entry=0x41e770 <client_connected>) at master-service.c:560 No locals. #36 0x000000000040b940 in main (argc=1, argv=0x635390) at main.c:400 set_roots = {0x425a20, 0x0} login_set = {auth_socket_path = 0x62d040 "\001", postlogin_socket_path = 0x0, postlogin_timeout_secs = 60, callback = 0x41e5e0 <login_client_connected>, failure_callback = 0x41e710 <login_client_failed>, request_auth_token = 1} service_flags = <optimized out> storage_service_flags = <optimized out> username = 0x0 c = <optimized out>