[Dovecot] dovecot 1.1.3 coredump

Anton Yuzhaninov citrin at rambler-co.ru
Tue Sep 23 08:50:10 EEST 2008


On 23.09.2008 09:47, Timo Sirainen wrote:
> On Tue, 2008-09-23 at 09:38 +0400, Anton Yuzhaninov wrote:
>> On 22.09.2008 23:34, Timo Sirainen wrote:
>>> On Thu, 2008-09-18 at 19:32 +0400, Anton Yuzhaninov wrote:
>>>> I found imap core in coredump dir:
>>>>
>>>> (gdb) bt
>>>> #0  0x00000000004abdea in message_parse_header_next (ctx=0x79c150, hdr_r=0x7fffffffe478) at message-header-parser.c:114
>>> Do you still have this core? Could you do:
>>>
>>> p *ctx.input
>>> p ret
>>> p msg
>>> p size
>>> p parse_size
>>> p startpos
>>>
>> (gdb) f 0
>> #0  0x00000000004abdea in message_parse_header_next (ctx=0x79c150, hdr_r=0x7fffffffe478) at message-header-parser.c:114
>> 114                             if (msg[0] == '\n' ||
>> (gdb) p *ctx.input
>> $1 = {v_offset = 0, stream_errno = 0, mmaped = 0, blocking = 1, closed = 0, seekable = 1, eof = 0, real_stream = 0x795180}
> 
> Thanks, one more:
> 
> p *ctx.input.real_stream
> 

(gdb) p *ctx.input.real_stream
$1 = {iostream = {refcount = 2, close = 0x4d1610 <io_stream_default_close_destroy>,
     destroy = 0x4a78b0 <i_stream_header_filter_destroy>,
     set_max_buffer_size = 0x4a7980 <i_stream_header_filter_set_max_buffer_size>,
     destroy_callback = 0x4630f0 <index_mail_stream_destroy_callback>, destroy_context = 0x713048},
   read = 0x4a84a0 <i_stream_header_filter_read>, seek = 0x4a8770 <i_stream_header_filter_seek>,
   sync = 0x4a88e0 <i_stream_header_filter_sync>, stat = 0x4a8900 <i_stream_header_filter_stat>, istream = {v_offset = 0,
     stream_errno = 0, mmaped = 0, blocking = 1, closed = 0, seekable = 1, eof = 0, real_stream = 0x795180}, fd = -1,
   abs_start_offset = 212797, statbuf = {st_dev = 0, st_ino = 0, st_mode = 0, st_nlink = 0, st_uid = 0, st_gid = 0,
     st_rdev = 0, st_atimespec = {tv_sec = 1221550817, tv_nsec = 0}, st_mtimespec = {tv_sec = 1221550817, tv_nsec = 0},
     st_ctimespec = {tv_sec = 1221550817, tv_nsec = 0}, st_size = -1, st_blocks = 0, st_blksize = 0, st_flags = 0,
     st_gen = 0, st_lspare = 0, st_birthtimespec = {tv_sec = 0, tv_nsec = 0}}, buffer = 0x0, w_buffer = 0x0,
   buffer_size = 0, max_buffer_size = 8192, skip = 0, pos = 0, parent = 0x7302d0, parent_start_offset = 0, line_str = 0x0}

>> (gdb) p ret
>> $2 = -2
>> (gdb) p msg
>> $3 = (const unsigned char *) 0x0
>> (gdb) p size
>> $4 = 0
> 
> Strange, it returned "input buffer is full" while the buffer was empty..


-- 
WBR,
  Anton Yuzhaninov
  Rambler Mail


More information about the dovecot mailing list