sieve/internal error/detail subaddress and IMAP4FLAGS.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

sieve/internal error/detail subaddress and IMAP4FLAGS.

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 <= [hidden email] 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=[hidden email]
Jan  3 13:37:27 thebighonker dovecot: lmtp(549): Connect from local
Jan  3 13:37:27 thebighonker dovecot: lmtp([hidden email]/549): save: box=INBOX, uid=127797, msgid=<[hidden email]>, size=1033, vsize=1062, from=Larry
 Rosenman <[hidden email]>, subject=testd, flags=()
Jan  3 13:37:27 thebighonker dovecot: lmtp([hidden email]/549): sieve: msgid=<[hidden email]>: stored mail into mailbox 'INBOX' (subject=testd from=le
[hidden email] size=1062)
Jan  3 13:37:27 thebighonker dovecot: lmtp([hidden email]/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 == [hidden email] R=localuser T=dovecot_lmtp defer (-46): LMTP error after end of data: 451 4.2.0 <[hidden email]>
 BUG: Unknown internal error
Jan  3 13:37:27 thebighonker dovecot: indexer-worker([hidden email]/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:[hidden email]
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: [hidden email]
US Mail: 5708 Sabbia Drive, Round Rock, TX 78665-2106
Reply | Threaded
Open this post in threaded view
|

Re: sieve/internal error/detail subaddress and IMAP4FLAGS.

Stephan Bosch-2
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 <= [hidden email] 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=[hidden email]
> Jan  3 13:37:27 thebighonker dovecot: lmtp(549): Connect from local
> Jan  3 13:37:27 thebighonker dovecot: lmtp([hidden email]/549): save: box=INBOX, uid=127797, msgid=<[hidden email]>, size=1033, vsize=1062, from=Larry
>  Rosenman <[hidden email]>, subject=testd, flags=()
> Jan  3 13:37:27 thebighonker dovecot: lmtp([hidden email]/549): sieve: msgid=<[hidden email]>: stored mail into mailbox 'INBOX' (subject=testd from=le
> [hidden email] size=1062)
> Jan  3 13:37:27 thebighonker dovecot: lmtp([hidden email]/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 == [hidden email] R=localuser T=dovecot_lmtp defer (-46): LMTP error after end of data: 451 4.2.0 <[hidden email]>
>  BUG: Unknown internal error
> Jan  3 13:37:27 thebighonker dovecot: indexer-worker([hidden email]/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.

Reply | Threaded
Open this post in threaded view
|

Re: sieve/internal error/detail subaddress and IMAP4FLAGS.

Stephan Bosch-2
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 <= [hidden email] 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=[hidden email]
>> Jan  3 13:37:27 thebighonker dovecot: lmtp(549): Connect from local
>> Jan  3 13:37:27 thebighonker dovecot: lmtp([hidden email]/549): save: box=INBOX, uid=127797, msgid=<[hidden email]>, size=1033, vsize=1062, from=Larry
>>  Rosenman <[hidden email]>, subject=testd, flags=()
>> Jan  3 13:37:27 thebighonker dovecot: lmtp([hidden email]/549): sieve: msgid=<[hidden email]>: stored mail into mailbox 'INBOX' (subject=testd from=le
>> [hidden email] size=1062)
>> Jan  3 13:37:27 thebighonker dovecot: lmtp([hidden email]/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 == [hidden email] R=localuser T=dovecot_lmtp defer (-46): LMTP error after end of data: 451 4.2.0 <[hidden email]>
>>  BUG: Unknown internal error
>> Jan  3 13:37:27 thebighonker dovecot: indexer-worker([hidden email]/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-variable

Regards,

Stephan.