Hi

Has anyone experienced this issue? I'm not able to debug it.

Config, users, permissions, etc are the same as in the previous version, where it worked without problems.

If anyone can help it would be appreciated, I don't know what else look.

Thanks and best regards

El 16/03/2021 a las 11:40, Gonzalo Palacios Goicolea escribió:

Hi All,

Since upgrading to RHEL7 and dovecot-2.2.36-8.el7.x86_64 we're not able to get quota warnings work.

We get the error "User initialization failed: Failed to initialize quota: Invalid quota root quota: Invalid rule *:bytes=: Invalid bytes limit:"

mar 16 10:29:27 lda(user@domain): Quota: Executing warning: quota-warning 90 user@domain
Mar 16 10:29:27 buzonn5 gonzalo: mar 16 10:29:27 lda(user@domain): Quota: Executing warning: quota-warning 90 user@domain
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug: Loading modules from directory: /usr/lib64/dovecot
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug: Module loaded: /usr/lib64/dovecot/lib10_quota_plugin.so
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug: Module loaded: /usr/lib64/dovecot/lib15_notify_plugin.so
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug: Module loaded: /usr/lib64/dovecot/lib20_mail_log_plugin.so
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug: Module loaded: /usr/lib64/dovecot/lib90_sieve_plugin.so
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug: auth USER input: user@domain home=/buzones/externos/4/215283255776546 uid=508 gid=503 quota_rule=*:bytes=2147483648
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug: Ignoring overridden (-o) userdb setting: plugin/quota_rule
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug: Effective uid=508, gid=503, home=/buzones/externos/4/215283255776546
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug: Quota root: name=_backup backend=maildir args=ns=
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug: Quota rule: root=_backup mailbox=* bytes=0 messages=0
Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Error: User initialization failed: Failed to initialize quota: Invalid quota root quota: Invalid rule *:bytes=: Invalid bytes limit:
Mar 16 10:29:27 buzonn5 dovecot: lda: Fatal: Invalid user settings. Refer to server log for more information.

This is the quota-warning script:


#!/bin/sh
#Variables
PERCENT=$1
USER=$2
FECHA=`date '+%b %d %H:%M:%S'`

#Logueo del evento
echo "$FECHA lda($USER): Quota: Executing warning: quota-warning $PERCENT $USER" >> /var/log/dovecot/dovecot.log
logger -p local1.notice -f /var/log/dovecot/dovecot.log "$FECHA lda($USER): Quota: Executing warning: quota-warning $PERCENT $USER"

cat << EOF | /usr/libexec/dovecot/dovecot-lda -d $USER -o "plugin/quota_rule=*:bytes=%$"
From: postmaster at domain
Subject: Alerta de Capacidad
Date: `date`

El espacio asignado para el almacenamiento de su correo ha superado el $PERCENT% de su capacidad total. Por ello, se recomienda que elimine correos y/o vacie la papelera para liberar espacio.
Mensaje enviado desde `hostname`

Atentamente,

--
Responsable correo
postmaster at domain

EOF

-----------------------------

This is 90-quota.conf

plugin {
  quota = maildir:_backup:ns=
}

plugin {
  quota_exceeded_message = El espacio asignado para el almacenamiento del correo del destinatario ha superado su capacidad total. Por ello, el correo que usted intenta enviar no se puede entregar al destinatario.
  quota_warning = storage=70%% quota-warning 70 %u
  quota_warning1 = storage=90%% quota-warning 90 %u
  quota_warning2 = storage=95%% quota-warning 95 %u
  quota_warning3 = storage=99%% quota-warning 99 %u
}

service quota-warning {
  executable = script /etc/dovecot/scripts_notification_quota/quota-warning.sh
  user = vmail
  unix_listener quota-warning {
    user = vmail
  }
}

Getting user attibutes and quota with doveadms works right:

# doveadm user user@domain
field   value
uid     508
gid     503
home    /buzones/externos/4/215283255776546
mail    maildir:/buzones/externos/4/215283255776546/Maildir
quota_rule *:bytes=2147483648
# doveadm quota get -u user@domain
Quota name Type      Value   Limit                                                                                                    %
_backup    STORAGE 1153093 2097152                                                                                                   54
_backup    MESSAGE   44347       -  

It also works fine with ldapsearch


# ldapsearch -x -D "cn=mail_admin,cn=users,dc=domain,dc=es" -w ********** -b "dc=domain,dc=es" -h ldap.host mail=user@domain mailquotasize
# extended LDIF
#
# LDAPv3
# base <dc=domain,dc=es> with scope subtree
# filter: mail=user@domain
# requesting: mailquotasize
#

# user@domain, users, domain.es
dn: cn=user@domain,cn=users,dc=domain,dc=es
mailquotasize: 2147483648


I've been googling but I can't find where the problem may be. Can you please help me?

This is the whole config:

doveconf -n
# 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.24 (124e06aa)
# OS: Linux 3.10.0-1160.6.1.el7.x86_64 x86_64 Red Hat Enterprise Linux Server release 7.9 (Maipo)
# Hostname: host.domain
auth_cache_negative_ttl = 5 mins
auth_cache_size = 500 M
auth_cache_ttl = 5 mins
auth_failure_delay = 5 secs
default_vsz_limit = 1 G
disable_plaintext_auth = no
hostname = host.domain
imap_logout_format = in(bytes read)=%i out(bytes sent)=%o
listen = *
lock_method = dotlock
mail_fsync = always
mail_location = maildir:%h/Maildir
mail_nfs_index = yes
mail_nfs_storage = yes
mail_plugins = " quota mail_log notify"
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 imapflags notify
mbox_write_locks = fcntl
mmap_disable = yes
namespace {
  location = maildir:%h/Maildir/_backup
  prefix = _backup.
  separator = .
  type = private
}
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/dovecot-ldap.conf.ext
  driver = ldap
}
plugin {
  mail_log_events = delete undelete expunge mailbox_delete mailbox_rename mailbox_create save
  mail_log_fields = uid box msgid from subject
  quota = maildir:_backup:ns=
  quota_exceeded_message = El espacio asignado para el almacenamiento del correo del destinatario ha superado su capacidad total. Por ello, el correo que usted intenta enviar no se puede entregar al destinatario.
  quota_warning = storage=70%% quota-warning 70 %u
  quota_warning1 = storage=90%% quota-warning 90 %u
  quota_warning2 = storage=95%% quota-warning 95 %u
  quota_warning3 = storage=99%% quota-warning 99 %u
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/Maildir/sieve
  sieve_extensions = +notify +imapflags
}
postmaster_address = postmaster@domain
protocols = imap pop3 sieve
service auth {
  unix_listener auth-userdb {
    group = vmail
    mode = 0777
    user = vmail
  }
}
service imap-login {
  inet_listener imap {
    port = 143
  }
  process_min_avail = 20
}
service imap {
  process_limit = 2048
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  inet_listener sieve_deprecated {
    port = 2000
  }
  process_min_avail = 20
}
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  process_min_avail = 20
}
service pop3 {
  process_limit = 2048
}
service quota-warning {
  executable = script /etc/dovecot/scripts_notification_quota/quota-warning.sh
  unix_listener quota-warning {
    user = vmail
  }
  user = vmail
}
ssl = no
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key =  # hidden, use -P to show it
submission_host = smtpi.domain:25
syslog_facility = local1
userdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
protocol lda {
  mail_plugins = " quota mail_log notify sieve"
}
protocol imap {
  mail_max_userip_connections = 10000
  mail_plugins = " quota mail_log notify imap_quota"
}
protocol pop3 {
  mail_max_userip_connections = 10
}


Thanks and best regards

--

Gonzalo Palacios Goicolea
U.T de Infraestructura de Equipos Centrales
Tecnologías de la Información
Universidad Autónoma de Madrid • Campus de Cantoblanco
Antes de imprimir este correo piense si es necesario.Cuidemos el medioambiente.

--

Gonzalo Palacios Goicolea
U.T de Infraestructura de Equipos Centrales
Tecnologías de la Información
Universidad Autónoma de Madrid • Campus de Cantoblanco
Antes de imprimir este correo piense si es necesario.Cuidemos el medioambiente.