Hi,
there is a line in TODO: "- sieve-cmu.c crash: i_assert(buf->used - 1 == part->body_size.physical_size); ". Yes, we've really seen this crash. Therefore we upgraded to dovecot-1.2.3 with dovecot-1.2-sieve-0.1.11 in order to use sieve plugin (i.e. not cmu-sieve). We use Solaris 10 on Sun servers, we don't use NFS.
However, unfortunately, dovecot with sieve crashes too. Here is dovecot log excerpt:
2009-09-01T02:40:57+02:00 prac/prac dovecot: [ID 583609 mail.crit] deliver(id@domain): Panic: file ext-body-common.c: line 149: assertion failed: (buf->used - 1 == part->body_size.physical_size) 2009-09-01T02:40:57+02:00 prac/prac dovecot: [ID 583609 mail.crit] deliver(id@domain): Panic: file ext-body-common.c: line 149: assertion failed: (buf->used - 1 == part->body_size.physical_size) 2009-09-01T02:40:57+02:00 prac/prac dovecot: [ID 583609 mail.error] deliver(id@domain): Raw backtrace: 0xbd27c -> 0xfead33b0 -> 0xfead358c -> 0xfead396c -> 0xfead4a78 -> 0xfeaa19dc -> 0xfeaa1abc -> 0xfeaa1c38 -> 0xfeabf22c -> 0xfeabf520 -> 0xfea90b20 -> 0xfea91048 -> 0xfea91404 -> 0x26e58 -> 0x23778
Now, some background. We use a sieve script with >>require "body"<<. This script compiles correctly and more, it works correctly while named as >>id@domain.sieve<< or >>id@domain.svbin". Nevertheless while the very same script is defined in plugin section of dovecot conf as "sieve = script" or "sieve_before = script" or "sieve_after = script" then dovecot crashes. I consider it as an important hint for problem resolution. Moreover, not every mail is affected, but we didn't investigate which mails are correctly saved to inbox and which crash.
The effect is, we're not able to implement global sieve policies which is bad because we really need them :-). We'd than be happy to test fixes, if any.
Best regards,
MU