Quoting Kostya Vasilyev <kmansoft@gmail.com>:
2014-07-10 4:05 GMT+04:00 Michael M Slusarz <slusarz@curecanti.org>:
Quoting Kostya Vasilyev <kmansoft@gmail.com>:
2014-07-10 1:37 GMT+04:00 Michael M Slusarz <slusarz@curecanti.org>:
Quoting Kostya Vasilyev <kmansoft@gmail.com>:
These days, you *really* should be using QRESYNC instead though.
There are some mail servers that support CONDSTORE but not QRESYNC. The old chicken and egg IMAP problem :)
[ snip ] Both Dovecot and Cyrus support both CONDSTORE and QRESYNC, and combined that is more than 50% market share, so that should be incentive enough. Gmail only supports CONDSTORE, but it's the outlier.
Gmail still does have a few users, though. A few dozen at least, maybe more :)
And it has a big advantage, from my point of view, over Cyrus / Dovecot -- there is but one server version that's consistent for all accounts.
Yes, they do some things wrong (like not sending message flags changes over IDLE connections), but I can test something in my personal account, get feedback from 3-5-10 users with @gmail accounts, and be reasonably confident that everything is fine (and that I'd know know if it's not).
This is getting a bit off-topic on this list... but Gmail does a LOT
of things wrong. Head over to one of the IMAP lists for further
information.
If you are testing against Gmail as the gold standard as to how a IMAP
server should operate, I can safely say you are Doing It Wrong.
For the "more than 50% market share" of Dovecot / Cyrus, do you have a breakdown by version number? At least in terms of 1.* vs 2.0 and higher?
I do not.
Maybe. You can't tell until you actually see whether the EXAMINE/SELECT returns HIGHESTMODSEQ or NOMODSEQ.
Are you saying that Dovecot will always (*will always*, and I mean *always*) return NOMODSEQ after a client "expresses interested in modseq values" and the server can't enable it for some reason?
Much like UIDVALIDITY should never change, NOMODSEQ will never be sent
(practical usage) for an active CONDSTORE access. You are asking
about a tremendously rare occurrence.
The whole deal with "HIGHESTMODSEQ 1" is irrelevant if you enable
CONDSTORE. I can't tell you what a server will return if you enable
CONDSTORE in one session, but then don't in another. But that doesn't
matter, since you aren't using HIGHESTMODSEQ in the latter case. As
long as CONDSTORE is active, HIGHESTMODSEQ will be updated, at least
in my 6 year experience with Dovecot which involves handling
installations with millions of users.
Or if it was previously enabled, and then well, I don't know, "something happened"?
By *always* I mean -- since Dovecot first started having a CONDSTORE in its CAPS, including version a.b.c that came with now really old Debian X, and version h.j.k that came with now really old RHEL Y, but which are still out there on actual mail servers, being used in actual mail accounts?
I have never run into an issue with HIGHESTMODSEQ for a properly
CONDSTORE-enabled session for Dovecot ever. I was one of the first
people (that I am aware of) that implemented CONDSTORE/QRESYNC back in
the early days (2009) ... and Dovecot was exclusively the server I was
developing with at that time.
When something goes wrong in an email app, then to the user, it's always the email app developer's fault. Nobody gives a damn about the subtleties of what RFC abc says about xyz, or if server version j.k.l from three years ago had a bug.
Agree, but only up to a certain point. If something is so onerous to
work around, then it *is* ok to say "it's the server's fault and we're
not going to work around this." Like everything else in life, there
is a cost/benefit analysis that must be done to determine where that
line needs to be drawn.
So, before enabling certain optimizations for Dovecot, I thought I'd ask on a Dovecot mailing list, about actual behavior for this server feature.
I assume this mailing list has people with real Dovecot experience and knowledge, and maybe even the developers are lurking here too.
Specifically, I was hoping to hear back maybe something like this:
"Dovecot version X which was packaged in Debian Z, would not update the modseq value after command Y".
Or maybe -- which would be great:
"There were no issues with modseq tracking, at all, no reported bugs, code not touched, since the feature was originally implemented and advertised as CONDSTORE in CAPS in version 1.2.*".
There are certainly bugs - I found several of them years ago when the
code was brand new (here's a thread:
http://markmail.org/message/fj74xta5z5uv4nix). But nothing that was
showstopping. And none of those versions are being run anymore for
all intents and purposes.
The bigger issue, specifically with QRESYNC, is not implementation
bugs but rather some deficiencies in the original standards (e.g.
unsolicited FETCHs without UIDs; VANISHED wasn't a required response
so sequence number tracking was still required) that weren't addressed
until RFC 7162. Those are more likely to trip you up then some
transient implementation bug.
michael