[Dovecot] crash with dovecot 2.2: Panic: Buffer full

tonio at starbridge.org tonio at starbridge.org
Sun Apr 7 22:47:30 EEST 2013


Le 19/03/2013 07:24, Tonio a écrit :
>
>
>
> Le 18 mars 2013 à 14:47, Timo Sirainen <tss at iki.fi> a écrit :
>
>> On Sat, 2013-03-16 at 13:51 +0100, tonio at 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 at 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 at spamguard.fr): Panic:
Buffer full (8206 > 8192, pool <none>)
Apr  7 21:30:58 mx2 dovecot: imap(clean-quarantine at 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 at 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 at 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 at 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 at 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 at entry=0x7fffe230f2f8,
dest=dest at entry=0x7fffe230f300, eof=eof at 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 at 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 at entry=0x7fffe230f2f8,
dest=dest at entry=0x7fffe230f300) at quoted-printable.c:109
No locals.
#9  0x00007f2986673c1f in i_stream_qp_try_decode_input
(bstream=bstream at entry=0x9f9e90, eof=eof at 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 at entry=0x9fa360, ret_r=ret_r at 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 at 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 at entry=0x9fa3c0, data_r=data_r at entry=0x7fffe230f500,
size_r=size_r at entry=0x7fffe230f508, threshold=threshold at 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 at entry=0x66d5b0,
part=part at entry=0x672050, include_hdr=include_hdr at entry=false,
binary_r=binary_r at entry=0x7fffe230f5c6,
converted_r=converted_r at 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 at entry=0x66d5b0, part=part at entry=0x672050,
include_hdr=include_hdr at entry=false, size_r=size_r at entry=0x7fffe230f688,
binary_r=binary_r at entry=0x7fffe230f67e,
stream_r=stream_r at entry=0x7fffe230f750) at mail.c:243
        _data_stack_cur_id = 5
        p = 0x66d5b0
        ret = <optimized out>
#21 0x00007f29869b0a3f in imap_msgpart_open (mail=mail at entry=0x66d5b0,
msgpart=0x669a30, result_r=result_r at 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 at 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 at 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 at 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 at 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 at 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 at 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>




More information about the dovecot mailing list