Timo, One of the two people who caused this assert has touched their mailbox via POP (Qualcomm POP, I haven't switched my POP service to dovecot yet). The X-UIDL would have been added by either qpopper or Eudora most likely. People are warned not to do POP and IMAP at the same time, but it happens anyway.
Jeff Earickson Colby College
On Sat, 31 Dec 2005, Timo Sirainen wrote:
Date: Sat, 31 Dec 2005 15:13:11 +0200 From: Timo Sirainen tss@iki.fi To: Jeff A. Earickson jaearick@colby.edu Cc: dovecot@dovecot.org Subject: Re: [Dovecot] alpha5: (message_body_search_ctx) assert
On Thu, 2005-12-22 at 10:41 -0500, Jeff A. Earickson wrote:
Hi, My second case of this assert, gdb analysis of the core dump attached. My setup: Solaris 9, dovecot built with gcc 4.0.2, mbox format, imap usage only. INBOX is NFS mounted from another Solaris 9 system, index files are local. Syslog complaint is:
imap(user): file message-body-search.c: line 414 (message_body_search_ctx): assertion failed: (input->v_offset == part->physical_pos + part->header_size.physical_size)
This happens if message headers are modified in mbox. Looks like in your case something added 30 bytes there. Could there be something else besides Dovecot modifying the mbox? Or if Dovecot added/modified some headers that aren't hidden, I'd like to know about that too. The hidden headers are: Content-Length, Status, X-IMAP, X-IMAPbase, X-Keywords, X-Status and X-UID. Hmm. Maybe X-UIDL should be added to that list.. Yes, I'll do that.
Anyway, I think I should also add some checks for this instead of letting it assert-crash..