wasm-demo/demo/ermis-f/imap-protocol/cur/1600095011.22641.mbox:2,S

41 lines
1.9 KiB
Plaintext

MBOX-Line: From asuth at mozilla.com Fri Mar 7 07:05:48 2014
To: imap-protocol@u.washington.edu
From: Andrew Sutherland <asuth@mozilla.com>
Date: Fri Jun 8 12:34:52 2018
Subject: [Imap-protocol] Is it okay/common for servers to ignore commands
sent before the greeting? (gmail seems to?)
Message-ID: <5319E04C.3070105@mozilla.com>
We're seeing a problem in the Firefox OS Gaia e-mail app where if we
manage to send our "A1 CAPABILITY" request to the gmail IMAP server
(initial-TLS imaps/993) before it sends its greeting, it acts like it
never hears the request. Our not-so-clever state machine hangs until
the connection times out.
There's more details and pcap dumps at https://bugzil.la/977867#c21 but
basically we sometimes manage to get that request in the same TCP packet
as the conclusion of TLS setup. The TCP/TLS packet with the server
greeting ACKs that packet, so it's quite conceivable our request is
managing to fall into a very specific edge case/race.
The spec does not seem to have a final word on this, although the state
flow diagram in http://tools.ietf.org/html/rfc3501#section-3 does seem
to imply that it's bad form to not wait for the server greeting. While
I think it's clear that for gmail we need to wait for the server
greeting, I am wondering if this is just an unusual complication/bug of
gmail's likely more complicated server architecture. I'd expect a
server intentionally being pedantic to issue a NO or BAD request...
Thoughts / has anyone seen servers that intentionally or accidentally
get upset in cases like this?
Thanks,
Andrew
PS: We do have a lot of round-trip fat in our connection establishment,
so it's not the end of the world to explicitly wait for the server
greeting in all cases, but if it's just gmail (and we appropriately add
some improved timeout logic that triggers a persistent quirk for the
server), I could see it make sense to continue not waiting for the greeting.