Hello,

I'm in the process of moving our mail server from RHEL 6 to RHEL 9. We will be moving to:

# dovecot --version
2.3.16 (7e2e900c1a)

My issue is that sieve does not appear to work on the new setup, where it does work on the old one. I made a simple filter rule:

# cat /u/mail0test/.sieve/ingo.sieve
# Sieve Filter
# Generated by Ingo (http://www.horde.org/apps/ingo/) (06/28/2024, 11:14:52 PM)
require "fileinto";
# Test
if header :comparator "i;ascii-casemap" :contains "Subject" "filtertest"  {
    fileinto "Fun";
    stop;
}

Upon sending an email to this test account, the following appears in /var/log/maillog:

Jun 29 23:19:56 mail5 dovecot[3066980]: lda(mail0test)<3066980><FA8fFtzOgGZkzC4AuM9lWg>: Warning: sieve: file storage: Active sieve script symlink /u/mail0test/.dovecot.sieve is broken: Invalid/unknown path to storage (points to /u/mail0test/.sieve). Jun 29 23:19:56 mail5 dovecot[2987026]: doveadm(mail0test)<3066983><KFf4FtzOgGZnzC4AuM9lWg>: Warning: sieve: file storage: Active sieve script symlink /u/mail0test/.dovecot.sieve is broken: Invalid/unknown path to storage (points to /u/mail0test/.sieve). Jun 29 23:19:56 mail5 dovecot[2987026]: doveadm(mail0test)<3067016><VdsdK9zOgGaIzC4AuM9lWg>: Warning: sieve: file storage: Active sieve script symlink /u/mail0test/.dovecot.sieve is broken: Invalid/unknown path to storage (points to /u/mail0test/.sieve).

Yet:

# ll /u/mail0test/.dovecot.sieve
lrwxrwxrwx. 1 mail0test sysguest 17 Jun 28 23:26 /u/mail0test/.dovecot.sieve -> .sieve/ingo.sieve
# file /u/mail0test/.sieve/ingo.sieve
/u/mail0test/.sieve/ingo.sieve: ASCII text

That is the filter file I've pasted above.

I've set the following directives in /etc/dovecot/conf.d/90-sieve.conf via puppet:

augeas {
  "dovecot_sieve_settings":
    context => "/files/etc/dovecot/conf.d/90-sieve.conf",
    changes => [
      "set plugin/sieve_dir ~/.sieve",
      "set plugin/sieve_user_log ~/.sieve/log"
    ],
    require => Package["dovecot"],
    notify => Service["dovecot"];
}

The full configuration dump is attached.

/u in our environment is the path for user homedirs, which is an NFS mount to a NetApp. The OS is Springdale Linux 9.2, a clone of RedHat from before the IBM license change. It will soon be RHEL 9.4 as we have obtained a license, but for all intents and purposes, Springdale 9.2 and RHEL 9.2 should be considered bug-for-bug compatible. The arch is x86_64 with both machines mail5 and mail6 (replicated) having Intel(R) Xeon(R) Gold 6244 CPU @ 3.60GHz and 768gb of memory. I have the same issue with SELinux in both enforcing and permissive modes, so this is not a permissions error due to SELinux.

Am I doing something wrong, or is this a bug? I've seen that there have been some previous issues similar to this that ended up being bugs in pigeonhole, so here I am.

Thanks,
Ben
# dovecot -n
# 2.3.16 (7e2e900c1a): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.16 (09c29328)
# OS: Linux 5.14.0-284.11.1.el9_2.x86_64 x86_64 Springdale Open Enterprise 
Linux release 9.2 (Parma) 
# Hostname: mail5.math.princeton.edu.private
auth_cache_negative_ttl = 5 mins
auth_cache_size = 32 M
auth_debug = yes
auth_mechanisms = plain login
auth_username_format = %Ln
auth_verbose = yes
auth_verbose_passwords = sha1
doveadm_password = # hidden, use -P to show it
doveadm_port = 12345
first_valid_gid = 500
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
listen = *
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u:INDEX=/home/%u/indexes
mail_nfs_storage = yes
mail_plugins = " fts fts_squat zlib notify replication"
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
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix = 
}
passdb {
  args = /etc/dovecot/deny-users
  deny = yes
  driver = passwd-file
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
plugin {
  fts = squat
  fts_squat = partial=4 full=10
  mail_replica = tcp:mail6.math.princeton.edu.private:12345
  replication_sync_timeout = 2
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_dir = ~/.sieve
  sieve_user_log = ~/.sieve/log
}
protocols = imap lmtp
replication_max_conns = 64
service aggregator {
  fifo_listener replication-notify-fifo {
    group = mail
    mode = 0666
    user = dovecot
  }
  unix_listener replication-notify {
    group = mail
    mode = 0666
    user = dovecot
  }
}
service anvil {
  unix_listener anvil {
    group = mail
    mode = 0666
  }
}
service auth {
  unix_listener auth-userdb {
    mode = 0666
  }
}
service doveadm {
  inet_listener {
    port = 12345
  }
  vsz_limit = 128 G
}
service imap-login {
  process_min_avail = 4
  service_count = 0
  vsz_limit = 512 M
}
service imap {
  vsz_limit = 4 G
}
service lmtp {
  inet_listener lmtp {
    address = *
    port = 24
  }
}
service replicator {
  process_min_avail = 1
  unix_listener replicator-doveadm {
    group = mail
    mode = 0666
    user = dovecot
  }
}
service stats {
  unix_listener stats-reader {
    group = mail
    mode = 0666
  }
  unix_listener stats-writer {
    group = mail
    mode = 0666
  }
}
ssl = required
ssl_cert = </etc/pki/dovecot/certs/imap.math.princeton.edu.crt
ssl_cipher_list = PROFILE=SYSTEM
ssl_key = # hidden, use -P to show it
userdb {
  driver = prefetch
}
userdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
protocol lmtp {
  mail_plugins = " fts fts_squat zlib notify replication sieve"
}
protocol lda {
  mail_plugins = " fts fts_squat zlib notify replication sieve"
}
protocol imap {
  imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags
  mail_max_userip_connections = 128
  mail_plugins = " fts fts_squat zlib notify replication imap_zlib"
}

_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org

Reply via email to