Closed rmarx closed 4 months ago
Discussed during editors' meeting. Discussion on how useful clean
is. Discussion on when connection_close should be emitted (before draining or after draining, if there's a draining involved). Marten feels it should be when draining starts, Lucas has no opinion.
Robin will go back and see what would be most useful and what makes sense with errors logging etc. (i.e., should be emit ConnectionClosed twice or use ConnectionStateUpdated for some things).
Also enforce here that triggers are suggestions, and that other triggers are possible based on application.
Related to #239
Ok, after spending WAY too much time re-reading the connection close stuff in RFC9000 and 9114, I think I now have something that's still a bit vague, but at least correct :)
The main problem apparently (and why "clean" was needed), is because you have situations where you as a peer receive a CONNECTION_CLOSE where you're not 100% sure what triggered it... (e.g., a transport CONNECTION_CLOSE (0x1c) with transport error code NO_ERROR) is probably clean, but you're not quite sure (could be it was an application-level error on the other end that they simply didn't pipe through correctly).
So I've now renamed that to "unspecified" and added text to say you should try to be as specific as possible... hope that is enough :)
PTAL @LPardue
Closes #410
@LPardue PTAL. I still think having an
application
value here is useful (e.g., user force-closed the connection somehow, or application decided to abandon it without waiting for clean shutoff without additional info). But as discussed on #410 the GOAWAY example was probably incorrect.