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