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 pgnet.dev+rich-dovecot@gmail.com 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_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');
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 % myuser@domain1.com User quota STORAGE 0 0 0 myuser@domain1.com User quota MESSAGE 0 10000 0 myuser@domain2.com User quota STORAGE 0 0 0 myuser@domain2.com User quota MESSAGE 0 10000 0
mysql> select * from PARAMS; +----+------------------------+------------+-------------+ | ai | MAILBOX_user_domain | quota_bytes | quota_msgs | +----+------------------------+-------------+------------+ | 1 | myuser@domain1.com | 0 | 0 | | 2 | myuser@domain2.com | 0 | 0 | +----+------------------------+------------+-------------+ 2 rows in set (0.00 sec)
and, after sending a single message to 'myuser@domain1.com', 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 % myuser@domain1.com User quota STORAGE 3 3 100 myuser@domain1.com User quota MESSAGE 1 10000 0 myuser@domain2.com User quota STORAGE 0 0 0 myuser@domain2.com User quota MESSAGE 0 10000 0
mysql> select * from PARAMS; +----+------------------------+------------+-------------+ | ai | MAILBOX_user_domain | quota_bytes | quota_msgs | +----+------------------------+-------------+------------+ | 1 | myuser@domain1.com | 3269 | 1 | | 2 | myuser@domain2.com | 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