Subject: Changing effect RST_STREAM has on stream state

From: Martin Thomson <[email-masked]>
Date: Fri, 21 Apr 2017 11:12:02 +1000

The current draft contains a bug where it does not permit the use of
RST_STREAM on an idle stream.  Given our design for push promise, this
is a feature that we absolutely need.  The only mention of this
currently is text that allows RST_STREAM to be received on an idle
stream, it says nothing about what to do with it.

The fix that I'd like to make to here is bigger than a small patch.
I'm proposing that we change the way we are describing RST_STREAM.  It
doesn't change the semantics at all, but merely recognizes that the
protocol depends on having a stream close in both directions: either
RST_STREAM or FIN.

RST_STREAM no longer causes the state to go straight to closed without
collecting 200 in your preferred currency, it only half-closes the
stream.

The PR contains more info, including nice ASCII art:
https://github.com/quicwg/base-drafts/pull/459

I have marked the PR editorial.  It doesn't change what happens on the
wire, but this is a pretty big change in the way we describe things,
so I wanted to float the change here.