[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
Op 2/8/2013 10:24 AM, Peter Rindfuss schreef:
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)
I'm unable to reproduce this so far. Could you show me more details of your setup?
- Output from: dovecot -n
- Your exact test message
- Your exact test Sieve script
- The sieve-test command line
Regards,
Stephan.
Am 2013-02-09 09:27, schrieb Stephan Bosch:
I'm unable to reproduce this so far. Could you show me more details of your setup?
- Output from: dovecot -n
- Your exact test message
- Your exact test Sieve script
- The sieve-test command line
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:
Am 2013-02-09 09:27, schrieb Stephan Bosch:
I'm unable to reproduce this so far. Could you show me more details of your setup?
- Output from: dovecot -n
- Your exact test message
- Your exact test Sieve script
- The sieve-test command line
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.
I will take another look at this in a few days.
Regards,
Stephan.
On 2/9/2013 8:20 PM, Peter Rindfuss wrote:
Am 2013-02-09 09:27, schrieb Stephan Bosch:
I'm unable to reproduce this so far. Could you show me more details of your setup?
- Output from: dovecot -n
- Your exact test message
- Your exact test Sieve script
- The sieve-test command line
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.
This should fix it:
http://hg.rename-it.nl/dovecot-2.1-pigeonhole/rev/13d41cc284fc
Regards,
Stephan.
participants (2)
-
Peter Rindfuss
-
Stephan Bosch