Implementing secondary quota w/ "Archive" namespace

Mark Moseley moseleymark at gmail.com
Thu Dec 1 00:22:55 UTC 2016


On Thu, Nov 24, 2016 at 9:10 PM, Mark Moseley <moseleymark at gmail.com> wrote:

> On Thu, Nov 24, 2016 at 10:52 AM, Timo Sirainen <tss at iki.fi> wrote:
>
>> On 24 Nov 2016, at 9.33, Mark Moseley <moseleymark at gmail.com> wrote:
>> >
>> > On Wed, Nov 23, 2016 at 6:05 PM, Timo Sirainen <tss at iki.fi> wrote:
>> >
>> >> On 23 Nov 2016, at 0.49, Mark Moseley <moseleymark at gmail.com> wrote:
>> >>>
>> >>> If I move messages between namespaces, it appears to ignore the quotas
>> >> I've
>> >>> set on them. A *copy* will trigger the quota error. But a *move* just
>> >>> happily piles on to the overquota namespace. Is that normal?
>> >>
>> >> Probably needs a bit more thinking, but I guess the attached patch
>> would
>> >> help.
>> >>
>> >>
>> > I appreciate the patch! Esp on a Weds night. I applied and rerolled
>> > dovecot, but I can still move messages into the over-quota namespace.
>>
>> How about this updated patch?
>>
>>
> Nope, still lets me move messages into the over-quota namespace.
>
> Both these are true in quota_check:
>
> ctx->moving
> quota_move_requires_check
>
>
>
>
>> > Out of curiosity, in the Quota wiki page, it mentions that 'in theory
>> there
>> > could be e.g. "user quota" and "domain quota" roots'. That's also super
>> > interesting to me. Does anyone have any experience with that? I.e. any
>> > gotchas?
>>
>>
>> There's no automatic quota recalculation for domain quotas, because it
>> would have to somehow sum up all the users' quotas. Also I think that it
>> still does do the automatic quota recalculation if it gets into a situation
>> where it realizes that quotas are wrong, but it'll then just use the single
>> user's quota as the entire domain quota. So maybe it would work if you
>> externally sum up all the users' quotas and update it to the domain quota
>> in cronjob, e.g. once per hour. I guess it would be also nice if the
>> internal quota recalculation could be disabled and maybe execute an
>> external script to do it (similar to quota-warnings).
>>
>>

Anything else I can try? I'm not sure how the logic in the quota system
works, so I'm not sure what to suggest. What's the gist of the patch (i.e.
what's it trying to do that it wasn't before)?

If I can get a handle on that, I can start littering things with debug
statements to try to track stuff down.


More information about the dovecot mailing list