HIGHESTMODSEQ tracking

Michael M Slusarz
Wed, 09 Jul 2014 21:37:45 -0000

Quoting Kostya Vasilyev <kmansoft at gmail.com>:

> Hello,
>
> I'd like to follow up on someone else's old thread:
>
> http://dovecot.org/list/dovecot/2012-April/082624.html
>
> I understand that Dovecot (that 2012 discussion was about version 2.0.18)
> can return "HIGHESTMODSEQ 1" upon SELECT if persistent modseq
tracking was
> never enabled for a mailbox.

This behavior is largely irrelevant ... a client should ignore any
HIGHESTMODSEQ data that is sent if it (the client) hasn't sent a
CONDSTORE enabling command.

> I'd like to get a clarification on how to enable proper persistent
modseq
> tracking.
>
> Per RFC 4551, "A client supporting CONDSTORE.... indicates its
willingness
> to receive mod-sequence updates... by issuing:"
>
> SELECT mailbox (CONDSTORE)
> STATUS (... HIGHESTMODSEQ ...)
> ... others ...

4551 is deprecated --> it is now RFC 7162.

Also note there's actually 6 different categories of
CONDSTORE-enabling commands. SELECT/EXAMINE with CONDSTORE is just one
of the categories.

These days, you *really* should be using QRESYNC instead though.

> It seems that Dovecot 2.1.7 (Debian 7.5) enables persistent modseq tracking
> after one of the above two commands (and maybe others). So far so good.

Incorrect.  Dovecot has supported CONDSTORE/QRESYNC since 1.2.0.  And
as mentioned above, there are 6 different ways of enabling CONDSTORE.
(Enabling QRESYNC is done 1 way ... the "ENABLE QRESYNC" command).

> So my questions are:
>
> 1 - Is this (enabling persistent modseq) also the case for all Dovecot
> versions prior to 2.1.7 that advertise CONDSTORE?
>
> There must be people running older versions out there, older than 2.1.7.
>
> If not, how can I branch my logic to not use HIGHESTMODSEQ, given that
> Dovecot doesn't appear to return any version info via its greeting or
via
> the ID command?

As noted above, this is irrelevant.  As a client author, you should
ALWAYS ignore HIGHESTMODSEQ if you haven't enabled CONDSTORE/QRESYNC .

> 3 - I guess the change to return NOMOSEQ instead of "1" for
mailboxes with
> modseq tracking disabled, as mentioned in that discussion from 2012, never
> happened? At least on the 2.1 branch?

NOMODSEQ is only relevant *if* you have enabled CONDSTORE.  Returning
NOMODSEQ on mailboxes that don't support persistent mod-sequences has
worked since 1.2.0, at least as far as I know.

michael