Dovecot crashes. I think it's because of some message in my spam folder. It has happened once before, and that time I solved it by deleting that folder. It happens when I start gnus ("Checking messages in folder spam" or something like that), which makes gnus just stop, or when I try to enter that folder in mutt. Jan 30 17:07:09 kalle imap(ke): file imap-bodystructure.c: line 278 (part_parse_headers): assertion failed: (part->physical_pos >input->v_offset - start_offset) Is there something I can do to determine which message it crashed on? Maildir format, version 0.99.10.4.
--On Friday, January 30, 2004 5:22 PM +0100 Karl Eklund <kalle-e at medelklassen.com> wrote:> Is there something I can do to determine which message it crashed on?My approach would be to add a line of code to log the message file name and rebuild. (I love having access to source code!)
On 30.1.2004, at 18:22, Karl Eklund wrote:> Jan 30 17:07:09 kalle imap(ke): file imap-bodystructure.c: line > 278 (part_parse_headers): assertion failed: (part->physical_pos >> input->v_offset - start_offset) > > Is there something I can do to determine which message it crashed on? > > Maildir format, version 0.99.10.4.gdb backtrace would be useful from that, it'd also tell which message triggered it. See core dumps section in http://dovecot.org/bugreport.html -------------- next part -------------- A non-text attachment was scrubbed... Name: PGP.sig Type: application/pgp-signature Size: 186 bytes Desc: This is a digitally signed message part URL: <http://dovecot.org/pipermail/dovecot/attachments/20040130/16ca7cfc/attachment-0001.bin>
Timo Sirainen wrote:> On 30.1.2004, at 18:22, Karl Eklund wrote: > >> Jan 30 17:07:09 kalle imap(ke): file imap-bodystructure.c: line >> 278 (part_parse_headers): assertion failed: (part->physical_pos >>> input->v_offset - start_offset) >> >> Is there something I can do to determine which message it crashed on? >> >> Maildir format, version 0.99.10.4. > > > gdb backtrace would be useful from that, it'd also tell which message > triggered it. See core dumps section in http://dovecot.org/bugreport.htmlI don't get a core file if I set the drop privileges option that you describe there. Also I maybe should have mentioned the next line in the log file: Jan 31 17:47:56 kalle imap(ke): file imap-bodystructure.c: line 279 (part_parse_headers): assertion failed: (part->physical_pos >= input->v_offset - start_offset) Jan 31 17:47:56 kalle dovecot: child 4912 (imap) killed with signal 6 So it seems that it's not a proper crash (not signal 11) but that it exits voluntarily from the i_assert macro. Maybe that's why no core file appears? I also tried to figure out how to log some more info as Kenneth Porter suggested, but I can't manage to find out how to get the file name, or anything otherwise useful. I'm not a programmer and I never looked at the dovecot code before. If I knew how to jump around between function definitions etc without having to search with grep, perhaps I could find it.
I'm also seeing this - I wasn't able to get a core dump, but was able to get info from strace/lsof to track down the message: strace shows in a continuous read loop, as it's trying to go past EOF. pread(9, "", 3502, 30524) = 0 pread(9, "", 3502, 30524) = 0 pread(9, "", 3502, 30524) = 0 I've attached the problem message (gzipped). -D -- <dr.pox> does whistling in the dark make me go blind faster? -------------- next part -------------- A non-text attachment was scrubbed... Name: busted.msg.gz Type: application/octet-stream Size: 14691 bytes Desc: not available URL: <http://dovecot.org/pipermail/dovecot/attachments/20040203/b2f586ba/attachment-0001.obj>