On Mon, Oct 24, 2011 at 11:14 AM, Rich <[email protected]> wrote: > I'm able to consistently reproduce this problem/behavior, but not > workaround or fix it, yet. > > Rich > > On Wed, Oct 19, 2011 at 7:41 AM, Rich <[email protected]> > wrote: >> I've made some progress, but quota 'Limit' is still not fully >> functioning for me. >> >> A couple of changes have helped: >> >> Specifying a "%u% as username format, >> >> /etc/dovecot/conf.d/90-quota.conf >> plugin { >> - quota = dict:User Quota::proxy::quota >> + quota = dict:User Quota:%u:proxy::quota >> quota_rule = *:bytes=1073741824:messages=10000 >> quota_rule2 = Trash:storage=+10%% >> } >> >> using 'username' rather than 'user' in the user iteration query >> >> /etc/dovecot/sql/virtmail-userdb-sql.cf >> driver = mysql >> connect = host=/var/run/mysql/mysql.sock dbname=my_db >> user=my_user >> password=my_pass >> user_query = CALL UserDBQuery('%n','%d'); >> - iterate_query = SELECT `MAILBOX_user_domain` AS user FROM >> `PARAMS`; >> + iterate_query = SELECT `MAILBOX_user_domain` AS username >> FROM `PARAMS`; >> >> and adding to my user_query, >> >> CREATE PROCEDURE `UserDBQuery`( >> ... >> SELECT ... >> concat('*:bytes=', quota_bytes, ':messages=10000') AS >> quota_rule, >> ... >> >> Now, at init, >> >> doveadm quota get -A >> Username Quota name Type Value >> Limit % >> [email protected] User quota STORAGE 0 >> 0 0 >> [email protected] User quota MESSAGE 0 >> 10000 0 >> [email protected] User quota STORAGE 0 >> 0 0 >> [email protected] User quota MESSAGE 0 >> 10000 0 >> >> mysql> select * from PARAMS; >> +----+------------------------+------------+-------------+ >> | ai | MAILBOX_user_domain | quota_bytes | quota_msgs | >> +----+------------------------+-------------+------------+ >> | 1 | [email protected] | 0 | 0 | >> | 2 | [email protected] | 0 | 0 | >> +----+------------------------+------------+-------------+ >> 2 rows in set (0.00 sec) >> >> and, after sending a single message to '[email protected]', I do see >> that Dovecot now recognizes/calculates a quota change, and only for >> one domain, >> >> doveadm quota get -A >> Username Quota name Type Value >> Limit % >> [email protected] User quota STORAGE 3 >> 3 100 >> [email protected] User quota MESSAGE 1 >> 10000 0 >> [email protected] User quota STORAGE 0 >> 0 0 >> [email protected] User quota MESSAGE 0 >> 10000 0 >> >> mysql> select * from PARAMS; >> +----+------------------------+------------+-------------+ >> | ai | MAILBOX_user_domain | quota_bytes | quota_msgs | >> +----+------------------------+-------------+------------+ >> | 1 | [email protected] | 3269 | 1 | >> | 2 | [email protected] | 0 | 0 | >> +----+------------------------+------------+-------------+ >> 2 rows in set (0.00 sec) >> >> >> But, the Limit's wrong. It's not picking up the global Limit from >> >> /etc/dovecot/conf.d/90-quota.conf >> ... >> --> quota_rule = *:bytes=1073741824:messages=10000 >> ... >> >> and once a message quota Value is calculated, the Limit is set == >> Value, resulting in an incorrrect quota %-age of 100%. >> >> Is Limit supposed to be specified per-user? >> >> Rich >> >
