Implementing secondary quota w/ "Archive" namespace

Mark Moseley moseleymark at gmail.com
Thu Nov 24 07:33:05 UTC 2016


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.

I threw some i_debug's into quota_roots_equal()  (and one right at the
top), but I don't ever see them in the debug logs. But both "ctx->moving"
and "src_box == NULL" are true, so it never calls quota_roots_equal anyway
in that patched 'if' clause in quota_check. I threw the following into
quota_check and it printed to the debug log for both if's:

        if (ctx->moving ) i_debug("quota: quota_check: YES to ctx->moving"
);
        if (src_box == NULL) i_debug("quota: quota_check: YES to src_box ==
NULL" );


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?


More information about the dovecot mailing list