For the sake for the archives, I'm following up here. Timo pointed
out that the particular assert() is no longer present in 1.0rc15,
which puzzled me since I was sure I was running 1.0rc15. It turns out
that on my Debian system, in addition to 1.0rc15 I had 0.99 installed
which was actually running as the server. Since I've eliminated the
old version, everything has been smooth as silk.
-- Matt Ronge
On Dec 22, 2006, at 3:34 PM, Timo Sirainen wrote:
On 22.12.2006, at 7.21, Matt Ronge wrote:
I'm running Dovecot on a Debian system which recently has been
failing on an assert(). I have a spam mailbox that if I try and
open (from any client), the imap process dies and this is written
to the error logs:Dec 21 18:57:11 theronge imap(mronge): file imap-bodystructure.c:
line 278 (part_parse_headers): assertion failed: (part-physical_pos >= input->v_offset - start_offset) Dec 21 18:57:11 theronge dovecot: child 28911 (imap) killed with
signal 6If this happens repeatedly and it's just a spam mailbox, could you
put the whole mailbox and the index files into a tarball and send
it to me (or post a link or whatever, I think I can accept max.
10MB mails)?The problem is that Dovecot has stored a cached MIME structure into
dovecot.index.cache file, but now when it's trying to use it again,
mail's contents have either changed or something else weird has
happened. I think I had added several sanity checks to this
already, so this assert shouldn't really have happened. But the
same problem has existed for years, so this is getting a bit
annoying problem.Could it be possible that the mail's body had changed?
Anyway if you delete dovecot.index.cache file it should work again.