<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi All,</p>
    <p>Since upgrading to RHEL7 and dovecot-2.2.36-8.el7.x86_64 we're
      not able to get quota warnings work.</p>
    <p>We get the error "User initialization failed: Failed to
      initialize quota: Invalid quota root quota: Invalid rule *:bytes=:
      Invalid bytes limit:"</p>
    <p><i>mar 16 10:29:27 lda(user@domain): Quota: Executing warning:
        quota-warning 90 user@domain</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 gonzalo: mar 16 10:29:27
        lda(user@domain): Quota: Executing warning: quota-warning 90
        user@domain</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
        Loading modules from directory: /usr/lib64/dovecot</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
        Module loaded: /usr/lib64/dovecot/lib10_quota_plugin.so</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
        Module loaded: /usr/lib64/dovecot/lib15_notify_plugin.so</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
        Module loaded: /usr/lib64/dovecot/lib20_mail_log_plugin.so</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
        Module loaded: /usr/lib64/dovecot/lib90_sieve_plugin.so</i><i><br>
      </i><i>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</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
        Ignoring overridden (-o) userdb setting: plugin/quota_rule</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
        Effective uid=508, gid=503,
        home=/buzones/externos/4/215283255776546</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
        Quota root: name=_backup backend=maildir args=ns=</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 dovecot: lda(user@domain): Debug:
        Quota rule: root=_backup mailbox=* bytes=0 messages=0</i><i><br>
      </i><i>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:</i><i><br>
      </i><i>Mar 16 10:29:27 buzonn5 dovecot: lda: Fatal: Invalid user
        settings. Refer to server log for more information.</i><br>
      <br>
      This is the quota-warning script:<br>
      <br>
      <br>
      <i>#!/bin/sh</i><i><br>
      </i><i>#Variables</i><i><br>
      </i><i>PERCENT=$1</i><i><br>
      </i><i>USER=$2</i><i><br>
      </i><i>FECHA=`date '+%b %d %H:%M:%S'`</i><i><br>
      </i><i><br>
      </i><i>#Logueo del evento</i><i><br>
      </i><i>echo "$FECHA lda($USER): Quota: Executing warning:
        quota-warning $PERCENT $USER" >>
        /var/log/dovecot/dovecot.log</i><i><br>
      </i><i>logger -p local1.notice -f /var/log/dovecot/dovecot.log
        "$FECHA lda($USER): Quota: Executing warning: quota-warning
        $PERCENT $USER"</i><i><br>
      </i><i><br>
      </i><i>cat << EOF | /usr/libexec/dovecot/dovecot-lda -d
        $USER -o "plugin/quota_rule=*:bytes=%$"</i><i><br>
      </i><i>From: postmaster at domain</i><i><br>
      </i><i>Subject: Alerta de Capacidad</i><i><br>
      </i><i>Date: `date`</i><i><br>
      </i><i><br>
      </i><i>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.</i><i><br>
      </i><i>Mensaje enviado desde `hostname`</i><i><br>
      </i><i><br>
      </i><i>Atentamente,</i><i><br>
      </i><i><br>
      </i><i>--</i><i><br>
      </i><i>Responsable correo </i><i><br>
      </i><i>postmaster at domain</i><i><br>
      </i><i><br>
      </i><i>EOF</i><i><br>
      </i><br>
      -----------------------------<br>
    </p>
    <p>This is 90-quota.conf<br>
      <br>
      <i>plugin {</i><i><br>
      </i><i>  quota = maildir:_backup:ns=</i><i><br>
      </i><i>}</i><i><br>
      </i><i><br>
      </i><i>plugin {</i><i><br>
      </i><i>  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.</i><i><br>
      </i><i>  quota_warning = storage=70%% quota-warning 70 %u</i><i><br>
      </i><i>  quota_warning1 = storage=90%% quota-warning 90 %u</i><i><br>
      </i><i>  quota_warning2 = storage=95%% quota-warning 95 %u</i><i><br>
      </i><i>  quota_warning3 = storage=99%% quota-warning 99 %u</i><i><br>
      </i><i>}</i><i><br>
      </i><i><br>
      </i><i>service quota-warning {</i><i><br>
      </i><i>  executable = script
        /etc/dovecot/scripts_notification_quota/quota-warning.sh</i><i><br>
      </i><i>  user = vmail</i><i><br>
      </i><i>  unix_listener quota-warning {</i><i><br>
      </i><i>    user = vmail</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>}</i><br>
    </p>
    <p>Getting user attibutes and quota with doveadms works right:<br>
      <br>
      <i># doveadm user user@domain</i><i><br>
      </i><i>field   value</i><i><br>
      </i><i>uid     508</i><i><br>
      </i><i>gid     503</i><i><br>
      </i><i>home    /buzones/externos/4/215283255776546</i><i><br>
      </i><i>mail    maildir:/buzones/externos/4/215283255776546/Maildir</i><i><br>
      </i><i>quota_rule *:bytes=2147483648</i><i><br>
      </i><i># doveadm quota get -u user@domain</i><i><br>
      </i><i>Quota name Type      Value  
Limit                                                                                                   
        %</i><i><br>
      </i><i>_backup    STORAGE 1153093
2097152                                                                                                  
        54</i><i><br>
      </i><i>_backup    MESSAGE   44347       -   </i><br>
      <br>
    </p>
    <p>It also works fine with ldapsearch<br>
    </p>
    <p><br>
      <i># 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</i><i><br>
      </i><i># extended LDIF</i><i><br>
      </i><i>#</i><i><br>
      </i><i># LDAPv3</i><i><br>
      </i><i># base <dc=domain,dc=es> with scope subtree</i><i><br>
      </i><i># filter: mail=user@domain</i><i><br>
      </i><i># requesting: mailquotasize</i><i><br>
      </i><i>#</i><i><br>
      </i><i><br>
      </i><i># user@domain, users, domain.es</i><i><br>
      </i><i>dn: cn=user@domain,cn=users,dc=domain,dc=es</i><i><br>
      </i><i>mailquotasize: 2147483648</i><br>
    </p>
    <p><br>
    </p>
    <p>I've been googling but I can't find where the problem may be. Can
      you please help me?<br>
    </p>
    <p>This is the whole config:</p>
    <p><i>doveconf -n</i><i><br>
      </i><i># 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf</i><i><br>
      </i><i># Pigeonhole version 0.4.24 (124e06aa)</i><i><br>
      </i><i># OS: Linux 3.10.0-1160.6.1.el7.x86_64 x86_64 Red Hat
        Enterprise Linux Server release 7.9 (Maipo)</i><i><br>
      </i><i># Hostname: host.domain</i><i><br>
      </i><i>auth_cache_negative_ttl = 5 mins</i><i><br>
      </i><i>auth_cache_size = 500 M</i><i><br>
      </i><i>auth_cache_ttl = 5 mins</i><i><br>
      </i><i>auth_failure_delay = 5 secs</i><i><br>
      </i><i>default_vsz_limit = 1 G</i><i><br>
      </i><i>disable_plaintext_auth = no</i><i><br>
      </i><i>hostname = host.domain</i><i><br>
      </i><i>imap_logout_format = in(bytes read)=%i out(bytes sent)=%o</i><i><br>
      </i><i>listen = *</i><i><br>
      </i><i>lock_method = dotlock</i><i><br>
      </i><i>mail_fsync = always</i><i><br>
      </i><i>mail_location = maildir:%h/Maildir</i><i><br>
      </i><i>mail_nfs_index = yes</i><i><br>
      </i><i>mail_nfs_storage = yes</i><i><br>
      </i><i>mail_plugins = " quota mail_log notify"</i><i><br>
      </i><i>managesieve_notify_capability = mailto</i><i><br>
      </i><i>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</i><i><br>
      </i><i>mbox_write_locks = fcntl</i><i><br>
      </i><i>mmap_disable = yes</i><i><br>
      </i><i>namespace {</i><i><br>
      </i><i>  location = maildir:%h/Maildir/_backup</i><i><br>
      </i><i>  prefix = _backup.</i><i><br>
      </i><i>  separator = .</i><i><br>
      </i><i>  type = private</i><i><br>
      </i><i>}</i><i><br>
      </i><i>namespace inbox {</i><i><br>
      </i><i>  inbox = yes</i><i><br>
      </i><i>  location =</i><i><br>
      </i><i>  mailbox Drafts {</i><i><br>
      </i><i>    special_use = \Drafts</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>  mailbox Junk {</i><i><br>
      </i><i>    special_use = \Junk</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>  mailbox Sent {</i><i><br>
      </i><i>    special_use = \Sent</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>  mailbox "Sent Messages" {</i><i><br>
      </i><i>    special_use = \Sent</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>  mailbox Trash {</i><i><br>
      </i><i>    special_use = \Trash</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>  prefix =</i><i><br>
      </i><i>}</i><i><br>
      </i><i>passdb {</i><i><br>
      </i><i>  args = /etc/dovecot/dovecot-ldap.conf.ext</i><i><br>
      </i><i>  driver = ldap</i><i><br>
      </i><i>}</i><i><br>
      </i><i>plugin {</i><i><br>
      </i><i>  mail_log_events = delete undelete expunge mailbox_delete
        mailbox_rename mailbox_create save</i><i><br>
      </i><i>  mail_log_fields = uid box msgid from subject</i><i><br>
      </i><i>  quota = maildir:_backup:ns=</i><i><br>
      </i><i>  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.</i><i><br>
      </i><i>  quota_warning = storage=70%% quota-warning 70 %u</i><i><br>
      </i><i>  quota_warning1 = storage=90%% quota-warning 90 %u</i><i><br>
      </i><i>  quota_warning2 = storage=95%% quota-warning 95 %u</i><i><br>
      </i><i>  quota_warning3 = storage=99%% quota-warning 99 %u</i><i><br>
      </i><i>  sieve = ~/.dovecot.sieve</i><i><br>
      </i><i>  sieve_dir = ~/Maildir/sieve</i><i><br>
      </i><i>  sieve_extensions = +notify +imapflags</i><i><br>
      </i><i>}</i><i><br>
      </i><i>postmaster_address = postmaster@domain</i><i><br>
      </i><i>protocols = imap pop3 sieve</i><i><br>
      </i><i>service auth {</i><i><br>
      </i><i>  unix_listener auth-userdb {</i><i><br>
      </i><i>    group = vmail</i><i><br>
      </i><i>    mode = 0777</i><i><br>
      </i><i>    user = vmail</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>}</i><i><br>
      </i><i>service imap-login {</i><i><br>
      </i><i>  inet_listener imap {</i><i><br>
      </i><i>    port = 143</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>  process_min_avail = 20</i><i><br>
      </i><i>}</i><i><br>
      </i><i>service imap {</i><i><br>
      </i><i>  process_limit = 2048</i><i><br>
      </i><i>}</i><i><br>
      </i><i>service managesieve-login {</i><i><br>
      </i><i>  inet_listener sieve {</i><i><br>
      </i><i>    port = 4190</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>  inet_listener sieve_deprecated {</i><i><br>
      </i><i>    port = 2000</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>  process_min_avail = 20</i><i><br>
      </i><i>}</i><i><br>
      </i><i>service pop3-login {</i><i><br>
      </i><i>  inet_listener pop3 {</i><i><br>
      </i><i>    port = 110</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>  process_min_avail = 20</i><i><br>
      </i><i>}</i><i><br>
      </i><i>service pop3 {</i><i><br>
      </i><i>  process_limit = 2048</i><i><br>
      </i><i>}</i><i><br>
      </i><i>service quota-warning {</i><i><br>
      </i><i>  executable = script
        /etc/dovecot/scripts_notification_quota/quota-warning.sh</i><i><br>
      </i><i>  unix_listener quota-warning {</i><i><br>
      </i><i>    user = vmail</i><i><br>
      </i><i>  }</i><i><br>
      </i><i>  user = vmail</i><i><br>
      </i><i>}</i><i><br>
      </i><i>ssl = no</i><i><br>
      </i><i>ssl_cert = </etc/pki/dovecot/certs/dovecot.pem</i><i><br>
      </i><i>ssl_key =  # hidden, use -P to show it</i><i><br>
      </i><i>submission_host = smtpi.domain:25</i><i><br>
      </i><i>syslog_facility = local1</i><i><br>
      </i><i>userdb {</i><i><br>
      </i><i>  args = /etc/dovecot/dovecot-ldap.conf.ext</i><i><br>
      </i><i>  driver = ldap</i><i><br>
      </i><i>}</i><i><br>
      </i><i>protocol lda {</i><i><br>
      </i><i>  mail_plugins = " quota mail_log notify sieve"</i><i><br>
      </i><i>}</i><i><br>
      </i><i>protocol imap {</i><i><br>
      </i><i>  mail_max_userip_connections = 10000</i><i><br>
      </i><i>  mail_plugins = " quota mail_log notify imap_quota"</i><i><br>
      </i><i>}</i><i><br>
      </i><i>protocol pop3 {</i><i><br>
      </i><i>  mail_max_userip_connections = 10</i><i><br>
      </i><i>}</i></p>
    <p><br>
    </p>
    <p>Thanks and best regards<br>
    </p>
    <div class="moz-signature">-- <br>
      <p class="3DMsoListParagraph"
        style="3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:"
auto;mso-add-space:auto;text-indent:-18.0pt;line-height:22.5pt;mso-list:l0=""
        level1="" lfo1;="" tab-stops:list="" 36.0pt'="">
        <b><span style="3D'font-size:10.5pt;font-family:"Arial"
            narrow",sans-serif;mso-fareast-font-family:"times="" new=""
            roman";mso-bidi-font-family:"times=""
            roman";color:#4d4d4d;="" mso-fareast-language:es'="">Gonzalo
            Palacios Goicolea</span></b><span
          style="3D'font-size:10.5pt;font-family:"Arial"
          narrow",sans-serif;mso-fareast-font-family:="" "times=""
          new="" roman";mso-bidi-font-family:"times=""
          roman";color:#4d4d4d;="" mso-fareast-language:es'=""><br>
          U.T de Infraestructura de Equipos Centrales<br>
        </span><i><span
            style="3D'font-size:10.5pt;font-family:"Arial"
            narrow",sans-serif;="" mso-fareast-font-family:"times=""
            new="" roman";mso-bidi-font-family:"times="" roman";=""
            color:#00abe4;mso-fareast-language:es'="">Tecnologías de la
            Información</span></i><span
          style="3D'font-size:10.5pt;font-family:"Arial"
          narrow",sans-serif;mso-fareast-font-family:="" "times=""
          new="" roman";mso-bidi-font-family:"times=""
          roman";color:#00abe4;="" mso-fareast-language:es'=""><br>
        </span><span style="3D'font:7.0pt" "times="" new="" roman"'="">Universidad
          Autónoma de Madrid • Campus
          de <span class="3DSpellE">Cantoblanco</span><br>
        </span><span style="3D'font-size:9.0pt;font-family:"Arial"
          narrow",sans-serif;mso-fareast-font-family:="" "times=""
          new="" roman";mso-bidi-font-family:"times=""
          roman";color:#95c11f;mso-fareast-language:es'="">Antes de
          imprimir este correo piense si es necesario.Cuidemos el
          medioambiente. </span>
      </p>
    </div>
  </body>
</html>