sieve/internal error/detail subaddress and IMAP4FLAGS.
I'm trying to set an IMAP Flag with the detail part of an address, but getting an internal error:
an 3 13:37:27 thebighonker exim[537]: 1eWoqt-00008f-4u <= ler@lerctr.org H=(lrosenman.local) [74.203.163.58]:4650 I=[192.147.25.65]:587 P=esmtpsa X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA3 84:256 CV=no SNI="smtp.lerctr.org" A=dovecot_login:ler S=769 id=20180103193716.oofszdaxopnkgfvd@lrosenman.local Jan 3 13:37:27 thebighonker dovecot: lmtp(549): Connect from local Jan 3 13:37:27 thebighonker dovecot: lmtp(ler@lerctr.org/549): save: box=INBOX, uid=127797, msgid=<20180103193716.oofszdaxopnkgfvd@lrosenman.local>, size=1033, vsize=1062, from=Larry Rosenman <ler@lerctr.org>, subject=testd, flags=() Jan 3 13:37:27 thebighonker dovecot: lmtp(ler@lerctr.org/549): sieve: msgid=<20180103193716.oofszdaxopnkgfvd@lrosenman.local>: stored mail into mailbox 'INBOX' (subject=testd from=le r@lerctr.org size=1062) Jan 3 13:37:27 thebighonker dovecot: lmtp(ler@lerctr.org/549): Error: sieve: !!BUG!!: Binary compiled from /home/ler/.dovecot.sieve is still corrupt; bailing out and reverting to def ault delivery Jan 3 13:37:27 thebighonker dovecot: lmtp(549): Disconnect from local: Client has quit the connection (state = READY) Jan 3 13:37:27 thebighonker exim[545]: 1eWoqt-00008f-4u == ler_testd@lerctr.org R=localuser T=dovecot_lmtp defer (-46): LMTP error after end of data: 451 4.2.0 <ler_testd@lerctr.org> BUG: Unknown internal error Jan 3 13:37:27 thebighonker dovecot: indexer-worker(ler@lerctr.org/536): Indexed 1 messages in INBOX (UIDs 127797..127797)
.dovecot.sieve points to master.sieve (below), and the rest of the scripts (including master.sieve) are
at http://www.lerctr.org/~ler/sieve.
require ["fileinto","imap4flags","include","mailbox",
"envelope","subaddress","variables"];
require "vnd.dovecot.debug";
global "MyFlags";
if envelope :detail "to" "freebsd" {
addflag "FreeBSD";
addflag "MyFlags" "FreeBSD";
}
if envelope :matches :detail "to" "*" {
set "detail" "${1}";
addflag "${detail}";
addflag "MyFlags" "${detail}";
}
debug_log "MyFlags=${MyFlags}, detail=${detail}";
include :personal "spam";
include :personal "freebsd";
include :personal "postgresql";
include :personal "misc";
include :personal "mailinglist";
Doveconf -n:
2.3.0 (c8b89eb): /usr/local/etc/dovecot/dovecot.conf
Pigeonhole version 0.5.0 (d68c23a1)
OS: FreeBSD 11.1-STABLE amd64
auth_mechanisms = plain login auth_realms = lerctr.org thebighonker.lerctr.org tbh.lerctr.org thejonesonair.com thejonesonair.net default_vsz_limit = 1 G deliver_log_format = msgid=%m: %$ (subject=%s from=%f size=%w) doveadm_password = # hidden, use -P to show it first_valid_gid = 0 first_valid_uid = 0 lda_mailbox_autocreate = yes listen = 192.147.25.65, :: login_access_sockets = tcpwrap mail_attribute_dict = file:%h/mail/.imap/dovecot-mail-attributes mail_location = mbox:~/mail:INBOX=~/mail/INBOX mail_log_prefix = "%s(%u/%p): " mail_plugins = " fts fts_solr notify virtual" mail_privileged_group = mail mail_server_admin = mailto:ler@lerctr.org mail_server_comment = LERCTR Mail Server 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 vacation-seconds editheader mboxmetadata servermetadata vnd.dovecot.debug imapsieve vnd.dovecot.imapsieve namespace archive { hidden = no list = no location = mbox:~/MAIL-ARCHIVE prefix = ARCHIVE/ separator = / } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox INBOX { auto = create } mailbox SENT { special_use = \Sent } mailbox SPAM { special_use = \Junk } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } mailbox virtual/Flagged { special_use = \Flagged } mailbox virtual/all { special_use = \All } prefix = separator = / } namespace virtual { hidden = no list = yes location = virtual:~/MAIL-VIRTUAL:INDEX=MEMORY prefix = Virtual/ separator = / } passdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } passdb { args = user=%Ln noauthenticate driver = static skip = authenticated } passdb { args = failure_show_msg=yes session=yes max_requests=20 driver = pam skip = authenticated } plugin { fts = solr fts_autoindex = yes fts_solr = url=http://thebighonker.lerctr.org:8983/solr/dovecot/ fts_tika = http://localhost:9998/tika/ imapsieve_mailbox1_before = file:/usr/local/share/dovecot-pigeonhole/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = SPAM imapsieve_mailbox2_before = file:/usr/local/share/dovecot-pigeonhole/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = SPAM imapsieve_mailbox2_name = * imapsieve_url = sieve://thebighonker.lerctr.org mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change append mail_log_fields = uid box msgid size from subject vsize flags recipient_delimiter = +-_ sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_execute_bin_dir = /usr/local/share/dovecot-pigeonhole/sieve sieve_extensions = +editheader +vacation-seconds +mboxmetadata +servermetadata +vnd.dovecot.debug sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute sieve_pipe_bin_dir = /usr/local/share/dovecot-pigeonhole/sieve sieve_plugins = sieve_imapsieve sieve_extprograms } protocols = imap pop3 lmtp sieve recipient_delimiter = +-_ service anvil { unix_listener anvil { group = mail mode = 0660 } } service auth { unix_listener auth-client { mode = 0666 } unix_listener auth-master { mode = 0666 } } service doveadm { inet_listener http { port = 8080 ssl = yes } } service indexer-worker { drop_priv_before_exec = yes } service lmtp { inet_listener lmtp { address = 127.0.0.1 port = 24 } } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } } service stats { unix_listener stats-reader { group = mail mode = 0660 user = } unix_listener stats-writer { group = mail mode = 0660 user = } } service tcpwrap { unix_listener login/tcpwrap { group = $default_login_user mode = 0600 user = $default_login_user } } ssl_cert = </home/ler/letsencrypt-home/lerctr.org/fullchain.cer ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+AESGCM:EECDH:EDH+AESGCM:EDH+aRSA:HIGH:!MEDIUM:!LOW:!aNULL:!eNULL:!LOW:!RC4:!MD5:!EXP:!PSK:!SRP:!DSS ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it userdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } userdb { args = username_format=%Ln /etc/passwd driver = passwd-file } verbose_proctitle = yes protocol lmtp { mail_plugins = " fts fts_solr notify virtual sieve mail_log" } protocol lda { mail_plugins = " fts fts_solr notify virtual sieve mail_log" } protocol pop3 { mail_plugins = " fts fts_solr notify virtual mail_log" } protocol !doveadm { mail_plugins = " fts fts_solr notify virtual mail_log" } protocol imap { imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags imap_logout_format = in=%i out=%o fhc=%{fetch_hdr_count} fhb=%{fetch_hdr_bytes} fbc=%{fetch_body_count} fbb=%{fetch_body_bytes} del=%{deleted} exp=%{expunged} trash=%{trashed} imap_metadata = yes mail_max_userip_connections = 50 mail_plugins = " fts fts_solr notify virtual mail_log imap_sieve" }
-- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 E-Mail: larryrtx@gmail.com US Mail: 5708 Sabbia Drive, Round Rock, TX 78665-2106
Op 1/3/2018 om 8:49 PM schreef Larry Rosenman:
I'm trying to set an IMAP Flag with the detail part of an address, but getting an internal error:
an 3 13:37:27 thebighonker exim[537]: 1eWoqt-00008f-4u <= ler@lerctr.org H=(lrosenman.local) [74.203.163.58]:4650 I=[192.147.25.65]:587 P=esmtpsa X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA3 84:256 CV=no SNI="smtp.lerctr.org" A=dovecot_login:ler S=769 id=20180103193716.oofszdaxopnkgfvd@lrosenman.local Jan 3 13:37:27 thebighonker dovecot: lmtp(549): Connect from local Jan 3 13:37:27 thebighonker dovecot: lmtp(ler@lerctr.org/549): save: box=INBOX, uid=127797, msgid=<20180103193716.oofszdaxopnkgfvd@lrosenman.local>, size=1033, vsize=1062, from=Larry Rosenman <ler@lerctr.org>, subject=testd, flags=() Jan 3 13:37:27 thebighonker dovecot: lmtp(ler@lerctr.org/549): sieve: msgid=<20180103193716.oofszdaxopnkgfvd@lrosenman.local>: stored mail into mailbox 'INBOX' (subject=testd from=le r@lerctr.org size=1062) Jan 3 13:37:27 thebighonker dovecot: lmtp(ler@lerctr.org/549): Error: sieve: !!BUG!!: Binary compiled from /home/ler/.dovecot.sieve is still corrupt; bailing out and reverting to def ault delivery Jan 3 13:37:27 thebighonker dovecot: lmtp(549): Disconnect from local: Client has quit the connection (state = READY) Jan 3 13:37:27 thebighonker exim[545]: 1eWoqt-00008f-4u == ler_testd@lerctr.org R=localuser T=dovecot_lmtp defer (-46): LMTP error after end of data: 451 4.2.0 <ler_testd@lerctr.org> BUG: Unknown internal error Jan 3 13:37:27 thebighonker dovecot: indexer-worker(ler@lerctr.org/536): Indexed 1 messages in INBOX (UIDs 127797..127797)
OK, problem is visible directly by dumping the binary using the sieve-dump tool. The dump ends in:
00000070: 10: SET 00000072: variable: VAR[0] ${detail} 00000076: value: MATCHVAL 1 0000007a: 11: ADDFLAG 0000007c: variable name: VAR[0] ${detail} 00000080: 12: list of flags: MATCHVAL 14 00000083: 12: Failed to read opcode. 00000083: 12: Binary is corrupt.
Will fix...
Regards,
Stephan.
Op 1/3/2018 om 11:57 PM schreef Stephan Bosch:
Op 1/3/2018 om 8:49 PM schreef Larry Rosenman:
I'm trying to set an IMAP Flag with the detail part of an address, but getting an internal error:
an 3 13:37:27 thebighonker exim[537]: 1eWoqt-00008f-4u <= ler@lerctr.org H=(lrosenman.local) [74.203.163.58]:4650 I=[192.147.25.65]:587 P=esmtpsa X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA3 84:256 CV=no SNI="smtp.lerctr.org" A=dovecot_login:ler S=769 id=20180103193716.oofszdaxopnkgfvd@lrosenman.local Jan 3 13:37:27 thebighonker dovecot: lmtp(549): Connect from local Jan 3 13:37:27 thebighonker dovecot: lmtp(ler@lerctr.org/549): save: box=INBOX, uid=127797, msgid=<20180103193716.oofszdaxopnkgfvd@lrosenman.local>, size=1033, vsize=1062, from=Larry Rosenman <ler@lerctr.org>, subject=testd, flags=() Jan 3 13:37:27 thebighonker dovecot: lmtp(ler@lerctr.org/549): sieve: msgid=<20180103193716.oofszdaxopnkgfvd@lrosenman.local>: stored mail into mailbox 'INBOX' (subject=testd from=le r@lerctr.org size=1062) Jan 3 13:37:27 thebighonker dovecot: lmtp(ler@lerctr.org/549): Error: sieve: !!BUG!!: Binary compiled from /home/ler/.dovecot.sieve is still corrupt; bailing out and reverting to def ault delivery Jan 3 13:37:27 thebighonker dovecot: lmtp(549): Disconnect from local: Client has quit the connection (state = READY) Jan 3 13:37:27 thebighonker exim[545]: 1eWoqt-00008f-4u == ler_testd@lerctr.org R=localuser T=dovecot_lmtp defer (-46): LMTP error after end of data: 451 4.2.0 <ler_testd@lerctr.org> BUG: Unknown internal error Jan 3 13:37:27 thebighonker dovecot: indexer-worker(ler@lerctr.org/536): Indexed 1 messages in INBOX (UIDs 127797..127797) OK, problem is visible directly by dumping the binary using the sieve-dump tool. The dump ends in:
00000070: 10: SET 00000072: variable: VAR[0] ${detail} 00000076: value: MATCHVAL 1 0000007a: 11: ADDFLAG 0000007c: variable name: VAR[0] ${detail} 00000080: 12: list of flags: MATCHVAL 14 00000083: 12: Failed to read opcode. 00000083: 12: Binary is corrupt.
Will fix...
It is an ancient one. Fix pending:
https://github.com/stephanbosch/pigeonhole-core/commits/fix-imap4flags-varia...
Regards,
Stephan.
participants (2)
-
Larry Rosenman
-
Stephan Bosch