Quotas not working after reboot

Edgaras Lukoševičius edgaras.lukosevicius at gmail.com
Tue Apr 28 09:00:22 UTC 2015


Hello,

after rebooting my dovecot server quotas are no longer working.

# dovecot --version
2.2.10

CentOS Linux release 7.0.1406

It is strange that restarting dovecot did not reveal this problem, but rebooting whole server did.



Before reboot it was like this:

# doveadm -D quota get -u test1 at testdomain1.tld
doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot
doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib10_quota_plugin.so
doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot/doveadm
03NB0d9erYBwhnzXhbS66fLDMU8v4ZiCDQDM3tDHCKme4ujpHy/lRk33305AIO9UXtgHGFyJYSpcVgoVnXJQGpJBphGvkAF4XI1JGx83Dtlb44wgJ8ZBgOm4qSNOoQIXKv0NO35EwUohtYBMlDJKPRUTwRF93tW7RsfWZGVNi4Eo5k616Tn4ooU3JMXkQA8LZ5zzLllspBVDbyb4GPAmWiw== root at ovzcloud
doveadm(root): Debug: Skipping module doveadm_acl_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so: undefined symbol: acl_user_module (this is usually intentional, so just ignore this message)
doveadm(root): Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_deinit (this is usually intentional, so just ignore this message)
doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_quota_plugin.so
doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_sieve_plugin.so
doveadm(root): Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_lucene_plugin.so: undefined symbol: lucene_index_iter_deinit (this is usually intentional, so just ignore this message)
doveadm(root): Debug: Skipping module doveadm_fts_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_plugin.so: undefined symbol: fts_backend_rescan (this is usually intentional, so just ignore this message)
doveadm(test1 at testdomain1.tld): Debug: Added userdb setting: plugin/quota=maildir:storage=512000000
doveadm(test1 at testdomain1.tld): Debug: Added userdb setting: plugin/quota_rule=*:bytes=512000000
doveadm(test1 at testdomain1.tld): Debug: Effective uid=997, gid=996, home=/home/vmail/t/e/testdomain1.tld/test1/
doveadm(test1 at testdomain1.tld): Debug: Quota root: name=storage=512000000 backend=maildir args=
doveadm(test1 at testdomain1.tld): Debug: Quota rule: root=storage=512000000 mailbox=* bytes=512000000 messages=0
doveadm(test1 at testdomain1.tld): Debug: Quota warning: bytes=486400000 (95%) messages=0 reverse=no command=quota-warning 95 test1 at testdomain1.tld
doveadm(test1 at testdomain1.tld): Debug: Quota warning: bytes=409600000 (80%) messages=0 reverse=no command=quota-warning 80 test1 at testdomain1.tld
doveadm(test1 at testdomain1.tld): Debug: Quota grace: root=storage=512000000 bytes=25600000 (5%)
doveadm(test1 at testdomain1.tld): Debug: Namespace inbox: type=private, prefix=INBOX., sep=., inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/home/vmail/t/e/testdomain1.tld/test1/
doveadm(test1 at testdomain1.tld): Debug: maildir++: root=/home/vmail/t/e/testdomain1.tld/test1, index=, indexpvt=, control=, inbox=/home/vmail/t/e/testdomain1.tld/test1, alt=
doveadm(test1 at testdomain1.tld): Debug: Namespace : type=private, prefix=, sep=, inbox=no, hidden=yes, list=no, subscriptions=no location=fail::LAYOUT=none
doveadm(test1 at testdomain1.tld): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=
Quota name        Type    Value  Limit                                                                                                   %
storage=512000000 STORAGE     0 500000                                                                                                   0
storage=512000000 MESSAGE     0      -



Now after rebooting i get this output:

# doveadm -D quota get -u test1 at testdomain1.tld
doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot
doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib10_quota_plugin.so
doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot/doveadm
doveadm(root): Debug: Skipping module doveadm_acl_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so: undefined symbol: acl_user_module (this is usually intentional, so just ignore this message)
doveadm(root): Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_deinit (this is usually intentional, so just ignore this message)
doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_quota_plugin.so
doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_sieve_plugin.so
doveadm(root): Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_lucene_plugin.so: undefined symbol: lucene_index_iter_deinit (this is usually intentional, so just ignore this message)
doveadm(root): Debug: Skipping module doveadm_fts_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_plugin.so: undefined symbol: fts_backend_rescan (this is usually intentional, so just ignore this message)
doveadm(test1 at testdomain1.tld): Debug: Added userdb setting: plugin/quota=maildir:storage=512000000
doveadm(test1 at testdomain1.tld): Debug: Added userdb setting: plugin/quota_rule=*:bytes=512000000
doveadm(test1 at testdomain1.tld): Debug: Effective uid=997, gid=996, home=/home/vmail/t/e/testdomain1.tld/test1/
doveadm(test1 at testdomain1.tld): Debug: Namespace inbox: type=private, prefix=INBOX., sep=., inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/home/vmail/t/e/testdomain1.tld/test1/
doveadm(test1 at testdomain1.tld): Debug: maildir++: root=/home/vmail/t/e/testdomain1.tld/test1, index=, indexpvt=, control=, inbox=/home/vmail/t/e/testdomain1.tld/test1, alt=
doveadm(test1 at testdomain1.tld): Debug: Namespace : type=private, prefix=POP3-MIGRATION-NS/, sep=, inbox=no, hidden=yes, list=no, subscriptions=yes location=pop3c:
doveadm(test1 at testdomain1.tld): Debug: fs: root=, index=, indexpvt=, control=, inbox=, alt=
doveadm(test1 at testdomain1.tld): Debug: Namespace : type=private, prefix=, sep=, inbox=no, hidden=yes, list=no, subscriptions=no location=fail::LAYOUT=none
doveadm(test1 at testdomain1.tld): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=
doveadm(test1 at testdomain1.tld): Error: Quota not enabled
Quota name Type Value Limit                                                                                                        %




# egrep -v "^#|^$" /etc/dovecot/conf.d/90-quota.conf
plugin {
  quota = maildir
  #quota_rule = *:storage=1G
  #quota_rule2 = Trash:storage=+100M
  # LDA/LMTP allows saving the last mail to bring user from under quota to
  # over quota, if the quota doesn't grow too high. Default is to allow as
  # long as quota will stay under 10% above the limit. Also allowed e.g. 10M.
  #quota_grace = 10%%
  quota_grace = 5%%
  quota_status_success = DUNNO
  quota_status_nouser = DUNNO
  quota_status_overquota = "552 5.2.2 Mailbox is full"
}
plugin {
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
}
plugin {
  #quota = dirsize:User quota
  #quota = maildir:User quota
  #quota = dict:User quota::proxy::quota
  #quota = fs:User quota
}
plugin {
  #quota = dict:user::proxy::quota
  #quota2 = dict:domain:%d:proxy::quota_domain
  #quota_rule = *:storage=102400
  #quota2_rule = *:storage=1048576
}
service quota-warning {
  executable = script /usr/local/bin/quota-warning.sh
  user = dovecot
  unix_listener quota-warning {
    user = vmail
  }
}
service quota-status {
    executable = quota-status -p postfix
    inet_listener {
        port = 12340
        # You can choose any port you want
    }
    client_limit = 1
}


More information about the dovecot mailing list