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 argsdoveadm(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, altdoveadm(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=, altQuota 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, altdoveadm(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=, altdoveadm(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=, altdoveadm(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 }
By the way, my quotas are configured to use SQL: user_query = SELECT CONCAT('/home/vmail/', maildir) AS home, 997 AS uid, 996 AS gid, CONCAT('*:bytes=', quota) AS quota_rule, CONCAT('maildir:storage=', quota) AS quota FROM mailbox WHERE username = LOWER('%u') AND active = '1' AND suspended = ?0' And when I run command "doveadm -D quota get -u test1 at testdomain1.tld? i see In MySQL query log that query is sent. On 28 Apr 2015, at 12:00, Edgaras Luko?evi?ius <edgaras.lukosevicius at gmail.com> wrote:> 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 > }
Aaaand... fixed. quota plugin was disabled in doveadm protocol as in: protocol doveadm { #mail_plugins = $mail_plugins pop3_migration mail_plugins = pop3_migration } Added ?quota' to mail_plugins Now I don?t know why that wasn?t a problem after issuing ?systemctl restart dovecot?, but at least it works now. On 28 Apr 2015, at 14:25, Edgaras Luko?evi?ius <edgaras.lukosevicius at gmail.com> wrote:> By the way, my quotas are configured to use SQL: > user_query = SELECT CONCAT('/home/vmail/', maildir) AS home, 997 AS uid, 996 AS gid, CONCAT('*:bytes=', quota) AS quota_rule, CONCAT('maildir:storage=', quota) AS quota FROM mailbox WHERE username = LOWER('%u') AND active = '1' AND suspended = ?0' > > And when I run command "doveadm -D quota get -u test1 at testdomain1.tld? i see In MySQL query log that query is sent. > > > On 28 Apr 2015, at 12:00, Edgaras Luko?evi?ius <edgaras.lukosevicius at gmail.com> wrote: > >> 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 >> } >