Hello! Dovecot 2.2.34 (874deae) Pigeonhole version 0.4.22 (22940fb7) After the update to pigeonhole version 0.4.22 the following configuration does not work. With version 0.4.21 it works. dovecot.conf (only sieve configuration) --------------------------------------------------------------- managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext editheader sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = /etc/dovecot/sieve/filter sieve_extensions = +editheader sieve_max_script_size = 1M service managesieve-login { inet_listener sieve { port = 4190 } } protocol sieve { mail_max_userip_connections = 10 managesieve_implementation_string = Sieve managesieve_logout_format = bytes=%i/%o } --------------------------------------------------------------- sieve_before script for all users (/etc/dovecot/sieve/filter) --------------------------------------------------------------- require ["editheader"]; if header :contains "X-Spam-Flag" "YES" { addheader "X-Filter-Junk-Flag" "YES"; addheader "X-Filter-Junk-Type" "SPAM"; } elsif header :contains "X-Amavis-Alert" "INFECTED" { addheader "X-Filter-Junk-Flag" "YES"; addheader "X-Filter-Junk-Type" "VIRUS"; } elsif header :contains "X-Amavis-Alert" "BANNED" { addheader "X-Filter-Junk-Flag" "YES"; addheader "X-Filter-Junk-Type" "ATTACHMENT"; } else { addheader "X-Filter-Junk-Flag" "NO"; addheader "X-Filter-Junk-Type" "NONE"; } --------------------------------------------------------------- sieve script for user postbox at example.com (.dovecot.sieve) --------------------------------------------------------------- require ["copy"]; if allof (header :is "X-Filter-Junk-Flag" "NO") { redirect :copy "copy at example.com"; } --------------------------------------------------------------- I use LMTP to deliver the mail to the user and the following error occurs: Mar 3 02:31:34 test dovecot: lmtp(postbox at example.com): Panic: file istream.c: line 197 (i_stream_read): assertion failed: ((size_t)ret+old_size == _stream->pos - _stream->skip) Mar 3 02:31:34 test dovecot: lmtp(postbox at example.com): Error: Raw backtrace: /usr/local/lib/dovecot/libdovecot.so.0(+0x9c7a0) [0x7f8c015be7a0] -> /usr/local/lib/dovecot/libdovecot.so.0(+0x9c88c) [0x7f8c015be88c] -> /usr/local/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f8c0155294d] -> /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read+0x2c8) [0x7f8c015c99d8] -> /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) [0x7f8c015ca15d] -> /usr/local/lib/dovecot/libdovecot.so.0(message_parse_header_next+0x63) [0x7f8c015a72e3] -> /usr/local/lib/dovecot/libdovecot.so.0(+0x7efb1) [0x7f8c015a0fb1] -> /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read+0x53) [0x7f8c015c9763] -> /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) [0x7f8c015ca15d] -> /usr/local/lib/dovecot/libdovecot.so.0(io_stream_copy+0x75) [0x7f8c015df1a5] -> /usr/local/lib/dovecot/libdovecot.so.0(+0xbf5e0) [0x7f8c015e15e0] -> /usr/local/lib/dovecot/libdovecot.so.0(o_stream_send_istream+0x33) [0x7f8c015df003] -> /usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x4dbf4) [0x7f8bfbb3abf4] -> /usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x3f22a) [0x7f8bfbb2c22a] -> /usr/local/lib/dovecot/libdovecot-sieve.so.0(sieve_result_execute+0x27f) [0x7f8bfbb2da6f] -> /usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x502ee) [0x7f8bfbb3d2ee] -> /usr/local/lib/dovecot/libdovecot-sieve.so.0(sieve_multiscript_run+0xa6) [0x7f8bfbb3def6] -> /usr/local/lib/dovecot/lib90_sieve_plugin.so(+0x379a) [0x7f8bfbda279a] -> /usr/local/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0xa2) [0x7f8c01b9d942] -> dovecot/lmtp [DATA 127.0.0.1 postbox at example.com]() [0x406c0b] -> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x52) [0x7f8c015d3c22] -> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0xea) [0x7f8c015d51ca] -> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x3c) [0x7f8c015d3cbc] -> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_run+0x38) [0x7f8c015d3e68] -> /usr/local/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f8c0155caa3] -> dovecot/lmtp [DATA 127.0.0.1 postbox at example.com](main+0x18c) [0x404fbc] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f8c01198b45] -> dovecot/lmtp [DATA 127.0.0.1 postbox at example.com]() [0x405065] Mar 3 02:31:34 test dovecot: lmtp(postbox at example.com): Fatal: master: service(lmtp): child 13445 killed with signal 6 (core dumps disabled) If I change the sieve script for this user, it works. For example: --------------------------------------------------------------- require ["copy"]; if allof (header :is "X-Filter-Junk-Status" "NO") { redirect :copy "copy at example.com"; } --------------------------------------------------------------- The error occurs only in version 0.4.22, not in version 0.4.21. Thanks, Jan
Op 3/3/2018 om 2:57 AM schreef Jan:> Hello! >We're looking into it. Regards, Stephan.> Dovecot 2.2.34 (874deae) > Pigeonhole version 0.4.22 (22940fb7) > > After the update to pigeonhole version 0.4.22 the following > configuration does not work. With version 0.4.21 it works. > > dovecot.conf (only sieve configuration) > --------------------------------------------------------------- > managesieve_notify_capability = mailto > managesieve_sieve_capability = fileinto reject envelope > encoded-character vacation subaddress comparator-i;ascii-numeric > relational regex imap4flags copy include variables body enotify > environment mailbox date index ihave duplicate mime foreverypart > extracttext editheader > sieve = file:~/sieve;active=~/.dovecot.sieve > sieve_before = /etc/dovecot/sieve/filter > sieve_extensions = +editheader > sieve_max_script_size = 1M > service managesieve-login { > ? inet_listener sieve { > ??? port = 4190 > ? } > } > protocol sieve { > ? mail_max_userip_connections = 10 > ? managesieve_implementation_string = Sieve > ? managesieve_logout_format = bytes=%i/%o > } > --------------------------------------------------------------- > > sieve_before script for all users (/etc/dovecot/sieve/filter) > --------------------------------------------------------------- > require ["editheader"]; > > if header :contains "X-Spam-Flag" "YES" { > ? addheader "X-Filter-Junk-Flag" "YES"; > ? addheader "X-Filter-Junk-Type" "SPAM"; > } > elsif header :contains "X-Amavis-Alert" "INFECTED" { > ? addheader "X-Filter-Junk-Flag" "YES"; > ? addheader "X-Filter-Junk-Type" "VIRUS"; > } > elsif header :contains "X-Amavis-Alert" "BANNED" { > ? addheader "X-Filter-Junk-Flag" "YES"; > ? addheader "X-Filter-Junk-Type" "ATTACHMENT"; > } > else { > ? addheader "X-Filter-Junk-Flag" "NO"; > ? addheader "X-Filter-Junk-Type" "NONE"; > } > --------------------------------------------------------------- > > sieve script for user postbox at example.com (.dovecot.sieve) > --------------------------------------------------------------- > require ["copy"]; > if allof (header :is "X-Filter-Junk-Flag" "NO") > { > ? redirect :copy "copy at example.com"; > } > --------------------------------------------------------------- > > I use LMTP to deliver the mail to the user and the > following error occurs: > > Mar? 3 02:31:34 test dovecot: lmtp(postbox at example.com): Panic: file > istream.c: line 197 (i_stream_read): assertion failed: > ((size_t)ret+old_size == _stream->pos - _stream->skip) > Mar? 3 02:31:34 test dovecot: lmtp(postbox at example.com): Error: Raw > backtrace: /usr/local/lib/dovecot/libdovecot.so.0(+0x9c7a0) > [0x7f8c015be7a0] -> /usr/local/lib/dovecot/libdovecot.so.0(+0x9c88c) > [0x7f8c015be88c] -> /usr/local/lib/dovecot/libdovecot.so.0(i_fatal+0) > [0x7f8c0155294d] -> > /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read+0x2c8) > [0x7f8c015c99d8] -> > /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) > [0x7f8c015ca15d] -> > /usr/local/lib/dovecot/libdovecot.so.0(message_parse_header_next+0x63) > [0x7f8c015a72e3] -> /usr/local/lib/dovecot/libdovecot.so.0(+0x7efb1) > [0x7f8c015a0fb1] -> > /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read+0x53) > [0x7f8c015c9763] -> > /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) > [0x7f8c015ca15d] -> > /usr/local/lib/dovecot/libdovecot.so.0(io_stream_copy+0x75) > [0x7f8c015df1a5] -> /usr/local/lib/dovecot/libdovecot.so.0(+0xbf5e0) > [0x7f8c015e15e0] -> > /usr/local/lib/dovecot/libdovecot.so.0(o_stream_send_istream+0x33) > [0x7f8c015df003] -> > /usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x4dbf4) > [0x7f8bfbb3abf4] -> > /usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x3f22a) > [0x7f8bfbb2c22a] -> > /usr/local/lib/dovecot/libdovecot-sieve.so.0(sieve_result_execute+0x27f) > [0x7f8bfbb2da6f] -> > /usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x502ee) > [0x7f8bfbb3d2ee] -> > /usr/local/lib/dovecot/libdovecot-sieve.so.0(sieve_multiscript_run+0xa6) > [0x7f8bfbb3def6] -> > /usr/local/lib/dovecot/lib90_sieve_plugin.so(+0x379a) [0x7f8bfbda279a] > -> /usr/local/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0xa2) > [0x7f8c01b9d942] -> dovecot/lmtp [DATA 127.0.0.1 > postbox at example.com]() [0x406c0b] -> > /usr/local/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x52) > [0x7f8c015d3c22] -> > /usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0xea) > [0x7f8c015d51ca] -> > /usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x3c) > [0x7f8c015d3cbc] -> > /usr/local/lib/dovecot/libdovecot.so.0(io_loop_run+0x38) > [0x7f8c015d3e68] -> > /usr/local/lib/dovecot/libdovecot.so.0(master_service_run+0x13) > [0x7f8c0155caa3] -> dovecot/lmtp [DATA 127.0.0.1 > postbox at example.com](main+0x18c) [0x404fbc] -> > /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) > [0x7f8c01198b45] -> dovecot/lmtp [DATA 127.0.0.1 > postbox at example.com]() [0x405065] > Mar? 3 02:31:34 test dovecot: lmtp(postbox at example.com): Fatal: > master: service(lmtp): child 13445 killed with signal 6 (core dumps > disabled) > > If I change the sieve script for this user, it works. > For example: > --------------------------------------------------------------- > require ["copy"]; > if allof (header :is "X-Filter-Junk-Status" "NO") > { > ? redirect :copy "copy at example.com"; > } > --------------------------------------------------------------- > > The error occurs only in version 0.4.22, not in version 0.4.21. > > Thanks, > Jan
Op 3/3/2018 om 9:15 AM schreef Stephan Bosch:> Op 3/3/2018 om 2:57 AM schreef Jan: >> Hello! >> > We're looking into it.Right, this is not reproducible in the test suite, but I can reproduce it when I replicate your setup. Regards, Stephan.>> Dovecot 2.2.34 (874deae) >> Pigeonhole version 0.4.22 (22940fb7) >> >> After the update to pigeonhole version 0.4.22 the following >> configuration does not work. With version 0.4.21 it works. >> >> dovecot.conf (only sieve configuration) >> --------------------------------------------------------------- >> managesieve_notify_capability = mailto >> managesieve_sieve_capability = fileinto reject envelope >> encoded-character vacation subaddress comparator-i;ascii-numeric >> relational regex imap4flags copy include variables body enotify >> environment mailbox date index ihave duplicate mime foreverypart >> extracttext editheader >> sieve = file:~/sieve;active=~/.dovecot.sieve >> sieve_before = /etc/dovecot/sieve/filter >> sieve_extensions = +editheader >> sieve_max_script_size = 1M >> service managesieve-login { >> ? inet_listener sieve { >> ??? port = 4190 >> ? } >> } >> protocol sieve { >> ? mail_max_userip_connections = 10 >> ? managesieve_implementation_string = Sieve >> ? managesieve_logout_format = bytes=%i/%o >> } >> --------------------------------------------------------------- >> >> sieve_before script for all users (/etc/dovecot/sieve/filter) >> --------------------------------------------------------------- >> require ["editheader"]; >> >> if header :contains "X-Spam-Flag" "YES" { >> ? addheader "X-Filter-Junk-Flag" "YES"; >> ? addheader "X-Filter-Junk-Type" "SPAM"; >> } >> elsif header :contains "X-Amavis-Alert" "INFECTED" { >> ? addheader "X-Filter-Junk-Flag" "YES"; >> ? addheader "X-Filter-Junk-Type" "VIRUS"; >> } >> elsif header :contains "X-Amavis-Alert" "BANNED" { >> ? addheader "X-Filter-Junk-Flag" "YES"; >> ? addheader "X-Filter-Junk-Type" "ATTACHMENT"; >> } >> else { >> ? addheader "X-Filter-Junk-Flag" "NO"; >> ? addheader "X-Filter-Junk-Type" "NONE"; >> } >> --------------------------------------------------------------- >> >> sieve script for user postbox at example.com (.dovecot.sieve) >> --------------------------------------------------------------- >> require ["copy"]; >> if allof (header :is "X-Filter-Junk-Flag" "NO") >> { >> ? redirect :copy "copy at example.com"; >> } >> --------------------------------------------------------------- >> >> I use LMTP to deliver the mail to the user and the >> following error occurs: >> >> Mar? 3 02:31:34 test dovecot: lmtp(postbox at example.com): Panic: file >> istream.c: line 197 (i_stream_read): assertion failed: >> ((size_t)ret+old_size == _stream->pos - _stream->skip) >> Mar? 3 02:31:34 test dovecot: lmtp(postbox at example.com): Error: Raw >> backtrace: /usr/local/lib/dovecot/libdovecot.so.0(+0x9c7a0) >> [0x7f8c015be7a0] -> /usr/local/lib/dovecot/libdovecot.so.0(+0x9c88c) >> [0x7f8c015be88c] -> /usr/local/lib/dovecot/libdovecot.so.0(i_fatal+0) >> [0x7f8c0155294d] -> >> /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read+0x2c8) >> [0x7f8c015c99d8] -> >> /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) >> [0x7f8c015ca15d] -> >> /usr/local/lib/dovecot/libdovecot.so.0(message_parse_header_next+0x63) >> [0x7f8c015a72e3] -> /usr/local/lib/dovecot/libdovecot.so.0(+0x7efb1) >> [0x7f8c015a0fb1] -> >> /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read+0x53) >> [0x7f8c015c9763] -> >> /usr/local/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) >> [0x7f8c015ca15d] -> >> /usr/local/lib/dovecot/libdovecot.so.0(io_stream_copy+0x75) >> [0x7f8c015df1a5] -> /usr/local/lib/dovecot/libdovecot.so.0(+0xbf5e0) >> [0x7f8c015e15e0] -> >> /usr/local/lib/dovecot/libdovecot.so.0(o_stream_send_istream+0x33) >> [0x7f8c015df003] -> >> /usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x4dbf4) >> [0x7f8bfbb3abf4] -> >> /usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x3f22a) >> [0x7f8bfbb2c22a] -> >> /usr/local/lib/dovecot/libdovecot-sieve.so.0(sieve_result_execute+0x27f) >> [0x7f8bfbb2da6f] -> >> /usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x502ee) >> [0x7f8bfbb3d2ee] -> >> /usr/local/lib/dovecot/libdovecot-sieve.so.0(sieve_multiscript_run+0xa6) >> [0x7f8bfbb3def6] -> >> /usr/local/lib/dovecot/lib90_sieve_plugin.so(+0x379a) [0x7f8bfbda279a] >> -> /usr/local/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0xa2) >> [0x7f8c01b9d942] -> dovecot/lmtp [DATA 127.0.0.1 >> postbox at example.com]() [0x406c0b] -> >> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x52) >> [0x7f8c015d3c22] -> >> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0xea) >> [0x7f8c015d51ca] -> >> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x3c) >> [0x7f8c015d3cbc] -> >> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_run+0x38) >> [0x7f8c015d3e68] -> >> /usr/local/lib/dovecot/libdovecot.so.0(master_service_run+0x13) >> [0x7f8c0155caa3] -> dovecot/lmtp [DATA 127.0.0.1 >> postbox at example.com](main+0x18c) [0x404fbc] -> >> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) >> [0x7f8c01198b45] -> dovecot/lmtp [DATA 127.0.0.1 >> postbox at example.com]() [0x405065] >> Mar? 3 02:31:34 test dovecot: lmtp(postbox at example.com): Fatal: >> master: service(lmtp): child 13445 killed with signal 6 (core dumps >> disabled) >> >> If I change the sieve script for this user, it works. >> For example: >> --------------------------------------------------------------- >> require ["copy"]; >> if allof (header :is "X-Filter-Junk-Status" "NO") >> { >> ? redirect :copy "copy at example.com"; >> } >> --------------------------------------------------------------- >> >> The error occurs only in version 0.4.22, not in version 0.4.21. >> >> Thanks, >> Jan