Subject: [quicwg/base-drafts] GOAWAY with StreamID == 0 (#1717)

From: Luca Niccolini <[email-masked]>
Date: Wed, 29 Aug 2018 19:05:43 -0700

The current text says about the StreamID in the GOAWAY frame definition:

> This identifier ... MAY be zero if no requests were processed.

With the latest transport changes, stream 0 is now a valid bidirectional stream, so GOAWAY(0) actually means that stream 0 is accepted/could be opened.
This opens up a case where an endpoint cannot know for sure whether the remote endpoint has accepted stream 0 or not.

If you agree this is an issue, I see two options to fix this: 
one is to add a flag to the GOAWAY frame that identify this particular case; 
another one is to slightly change the GOAWAY semantics to say that StreamID is the id of the last client-initiated stream plus one, i.e. the endpoint agree that any stream with ID >= StreamID was not accepted.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/1717

---

From: Martin Thomson <[email-masked]>
Date: Wed, 29 Aug 2018 21:43:49 -0700

Good catch.   I prefer the "this stream and all higher ones were not processed, guaranteed" interpretation.  Flags are awful.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/1717#issuecomment-417188164