On Tue, 2009-03-03 at 15:42 -0500, Alan Ferrency wrote: > On Tue, 3 Mar 2009, Timo Sirainen wrote: > > > On Tue, 2009-03-03 at 15:35 -0500, Alan Ferrency wrote: > > > I have a core dump available for deliver; here's a backtrace: > > > > Could you also do: > > > > > #6 0x080bb8a1 in i_stream_read (stream=0x8102e28) at istream.c:93 > > > > fr 6 > > p *stream > > p *stream.real_stream > > p *stream.real_stream.parent > > p *stream.real_stream.parent.real_stream > > Sure.
There's some bug here, but I'm not really sure where exactly the bug is. Could you apply the attached patch, remove -O2 from CFLAGS in src/lib-storage/index/mbox/Makefile, install and see if the assert moves to the istream-raw-mbox.c. If it does, again do: fr 6 p ret p pos p new_pos p *rstream p *stream.parent p *stream.parent.real_stream
diff -r ae1d3f97d703 src/lib-storage/index/mbox/istream-raw-mbox.c --- a/src/lib-storage/index/mbox/istream-raw-mbox.c Mon Mar 02 17:54:01 2009 -0500 +++ b/src/lib-storage/index/mbox/istream-raw-mbox.c Tue Mar 03 15:49:09 2009 -0500 @@ -181,6 +181,7 @@ if (ret == -2) { if (stream->istream.v_offset + pos == rstream->input_peak_offset) { + i_assert(stream->skip != stream->pos); stream->buffer = buf; return -2; } @@ -330,6 +331,7 @@ if (stream->istream.eof || ret > 0) return i_stream_raw_mbox_read(stream); i_assert(new_pos > 0); + i_assert(stream->skip != stream->pos); ret = -2; } else { i_assert(new_pos > stream->pos);
signature.asc
Description: This is a digitally signed message part