[Dovecot] conversion to maildir

Timo Sirainen tss at iki.fi
Thu Aug 28 13:04:56 EEST 2003


On Thu, 2003-08-28 at 12:26, Grahame Bowland wrote:
> Do dovecot plugins run as seperate processes and communicate with some
> sort of IPC, or do they run within the same process as the main server?
> If they run within a plugin would need to embed the actual interpreter.

They run within the server. I don't think there's much point in
separating them into other processes. So yes, you'd need embedded
interpreter but I don't think that's much of a problem.

> By the way, I converted over UWA's student email server to dovecot from
> UW-IMAP and cucipop last night. Relatively few problems, which I've now
> fixed with some tweaks to the config. 

Nice :)

> The only outstanding problem is
> these assertions I keep getting in the logs:
> Aug 28 17:03:51 tartarus imap(mpienaar): file mbox-rewrite.c: line 429
> (mbox_write_header): assertion failed: (hdr_parsed_size.physical_size ==
> hdr_size)
> 
> Does the assertion indicate a corrupted mailbox file? I can open that
> user's mailbox fine with mutt. It's dovecot 0.99.10-5 from Debian.

I heard about similiar problem before too.. I couldn't really figure out
what it was that caused the problem. I've never seen it myself and I've
been using mboxes all the time.

What that error message means is that message header size is different
when rewriting mbox than what it was at last synchronization. But since
the syncing is done just before the rewriting, that should never happen.
Except if there's a bug somewhere..

If it's possible I would like to see that mbox file. Actually it could
be enough if you just hide the actual content in it. Here's a pretty
perl script for that:

perl -e 'while (<>) { if (/^From ([^ ]*) *(.*)$/) { $hdr = 1; print "From foo\@bar.org $2\n"; } elsif ($hdr) { if (/^$/) { $hdr = 0; print "\n"; } elsif (/^Date:/i || /^Status:/i || /^X-Status:/i || /^X-Keywords:/i || /^X-UID:/i || /^X-IMAPbase:/i || /^Content-Length/i) { print $_; } else { s/^([^:]+:) (.*)/("$1 "."X"x length($2))/e; print $_; } } else { s/./B/g; print $_; } }' < inbox




More information about the dovecot mailing list