[Dovecot] sieve /editheader / addheader :last crash
Hi Everybody,
I'm using dovecot 2.1.14 from http://xi.rename-it.nl/debian/ with debian squeeze stable.
In general, sieve works fine for me, but "addheader :last ..." from the editheader extension causes a crash when it processes a message.
I was able to narrow this down a bit: It only happens if "addheader :last" is the first editheader command executed in a script. If it is preceded by any "deleteheader" or "addheader" without ":last", everything is fine.
This is what I get from sieve-test when it crashes:
sieve-test(root): Panic: file istream.c: line 133 (i_stream_read): assertion failed: (_stream->skip != _stream->pos)
sieve-test(root): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x4881a) [0x7f5e0b37681a] -> /usr/lib/dovecot/libdovecot.so.0(default_fatal_handler+0x32) [0x7f5e0b376902] -> /usr/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f5e0b349f7f] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read+0x17c) [0x7f5e0b37da9c] -> /usr/lib/dovecot/libdovecot.so.0(+0x51453) [0x7f5e0b37f453] -> /usr/lib/dovecot/libdovecot.so.0(+0x5150e) [0x7f5e0b37f50e] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read+0x69) [0x7f5e0b37d989] -> /usr/lib/dovecot/libdovecot.so.0(+0x53fe1) [0x7f5e0b381fe1] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read+0x69) [0x7f5e0b37d989] -> /usr/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x52) [0x7f5e0b37dc72] -> /usr/lib/dovecot/libdovecot.so.0(io_stream_copy+0x41) [0x7f5e0b38ae21] -> /usr/lib/dovecot/libdovecot.so.0(+0x5e1de) [0x7f5e0b38c1de] -> /usr/lib/dovecot/libdovecot.so.0(o_stream_send_istream+0x33) [0x7f5e0b38acb3] -> /usr/lib/dovecot/libdovecot-storage.so.0(maildir_save_continue+0x38) [0x7f5e0be0caf8] -> /usr/lib/dovecot/libdovecot-storage.so.0(mail_storage_copy+0xb8) [0x7f5e0be376d8] -> /usr/lib/dovecot/libdovecot-storage.so.0(maildir_copy+0x56) [0x7f5e0be086c6] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_copy+0x4a) [0x7f5e0be3ce9a] -> /usr/lib/dovecot/libdovecot-sieve.so.0(+0x3fa66) [0x7f5e0c103a66] -> /usr/lib/dovecot/libdovecot-sieve.so.0(+0x366b4) [0x7f5e0c0fa6b4] -> /usr/lib/dovecot/libdovecot-sieve.so.0(sieve_result_execute+0x3ff) [0x7f5e0c0fabef] -> /usr/lib/dovecot/libdovecot-sieve.so.0(sieve_execute+0x56) [0x7f5e0c10b456] -> sieve-test(main+0x73e) [0x403a5e] -> /lib/libc.so.6(__libc_start_main+0xfd) [0x7f5e0abdec8d] -> sieve-test() [0x403219] Aborted
Best regards Peter
Am 2013-02-09 09:27, schrieb Stephan Bosch:
Hi Stephan,
attached are "dovecot -n", a test message, and three very similar scripts one of which causes the crash and two not.
I'm inclined to say that the message itself does not matter.
This ist the sieve-test cmd line: sieve-test -t - -a 'brot@wzb.eu' -l /wzb/mail/brot/Maildir -e -x +editheader /wzb/mail/brot/sieve/{bad|good1|good2}.sieve mail
Initially I encountered the problem in real deliveries, not in sieve-test. It is always reproducible.
Best, Peter
On 2/9/2013 8:20 PM, Peter Rindfuss wrote:
This should fix it:
http://hg.rename-it.nl/dovecot-2.1-pigeonhole/rev/13d41cc284fc
Regards,
Stephan.
participants (2)
-
Peter Rindfuss
-
Stephan Bosch