doveadm quota get doesn't recalculate quota (Maildir backend)

Teodor Milkov tm at del.bg
Fri Feb 6 15:25:23 UTC 2015


Hello,

I've noticed that "doveadm quota get" doesn't recalculate quota if 
maildirsize file is missing for some reason. It just says quota is 
unknown, usage is 0.

In contrast, vpopmail does regenerate maildirsize if it is missing.

Reading the Maildir++ specification there is this part:

   ...If maildirsize does not exist, or if its size is at least 5120 
bytes, recalculate it using the procedure defined above, and use the 
recalculated numbers...

One seemingly legitimate reason for maildirsize to be missing is when 
vpopmail mailbox is set to NOQUOTA (i.e. no limits).

My workaround to this is to use a fallback quota:  quota_rule = 
?:messages=10000000

That is, if there's no backend limit detected (missing maildirsize) then 
fallback to 10 mln message count quota. In this case doveadm quota get 
_does_ recalculate usage and even creates maildirsize file.

So, my questions are:

1. Isn't it still better to calculate and show usage even if maildirsize 
is missing? Because calling quota recalc and then quota get is racy - 
someone else may change configuration or usage etc. between our two 
calls (forks).

2. If there's good reason against implicit recalculation, then maybe 
quota get output should be more specific that neither quota nor usage 
are known? Instead of usage=0 show -1 or "-" or "n/a" or "unkown"?


More information about the dovecot mailing list