[Dovecot] alpha5: (message_body_search_ctx) assert
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)
Jeff Earickson Colby College
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..
On Sat, 2005-12-31 at 15:13 +0200, Timo Sirainen wrote:
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.
Hmm. Or maybe I shouldn't have done that. If there are X-UIDL headers, Dovecot isn't anymore fully compatible with UW-IMAP or itself since the message headers changed. Also old cache files would be broken. So, I'll change it back.
The assert crash is anyway now replaced with:
Error: Corrupted index cache file .../mail/.imap/INBOX/dovecot.index.cache: Broken message structure for mail UID 2
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..
On Sat, 2005-12-31 at 08:52 -0500, Jeff A. Earickson wrote:
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.
But is POP + IMAP-webmail use warned? If user first reads the mailbox with webmail, then reads the mails with POP leaving them to server (and POP server modifies the mails), and again goes to webmail, this error happens.
If you meant with "at same time" having the POP and IMAP server processes running at the same time, that doesn't matter here.
On Sat, 31 Dec 2005, Timo Sirainen wrote:
Date: Sat, 31 Dec 2005 15:59:46 +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 Sat, 2005-12-31 at 08:52 -0500, Jeff A. Earickson wrote:
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.
But is POP + IMAP-webmail use warned? If user first reads the mailbox with webmail, then reads the mails with POP leaving them to server (and POP server modifies the mails), and again goes to webmail, this error happens.
Yes, this is my best guess as to what happened. Many people here have their POP email client set to leave mail on the server so they can also use webmail/IMAP. They are warned not to do this sequence above, but they forget that Eudora is auto-checking their email every few minutes. *Most* people at my site have either chosen webmail or Eudora and don't have this problem.
If you meant with "at same time" having the POP and IMAP server processes running at the same time, that doesn't matter here.
My POP (Qualcomm) and IMAP (dovecot) daemons run on two different machines. POP runs on our mail server, so the mailboxes are local filesystems. IMAP runs on our general-login computer, where the user home directories are local filesystems, and where the mailboxes are NFS-mounted from the mail server.
If I replace Qualcomm pop with dovecot pop on our mail server, will this same setup work? Does dovecot POP require anything from the user's home directory, eg index or cache files, like IMAP does?
For numerous reasons, I do not want users to have home directories on our mail server, either local or NFS-mounted.
Jeff Earickson Colby College
participants (2)
-
Jeff A. Earickson
-
Timo Sirainen