[Dovecot] assertion failed while using sieve

Maciej Uhlig maciej.uhlig at us.edu.pl
Tue Sep 1 13:19:59 EEST 2009


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 at 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 at 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 at 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 at domain.sieve<< or >>id at 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





More information about the dovecot mailing list