Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stream ID issue for HTTP/2 #957

Closed
vjpai opened this issue Mar 5, 2015 · 6 comments
Closed

Stream ID issue for HTTP/2 #957

vjpai opened this issue Mar 5, 2015 · 6 comments

Comments

@vjpai
Copy link
Member

vjpai commented Mar 5, 2015

Some issues that we need to support related to the HTTP/2 stream ID

  1. Check that the incoming stream ID follows the expected invariant of always increasing by 2 or more
  2. Send a go away on a transport if the stream is reaching too close to the limit (2^32)
  3. Write a test to confirm that the above 2 things actually happen
@vjpai
Copy link
Member Author

vjpai commented Mar 5, 2015

More details on this issue, quoted from HTTP/2 draft 17 ( https://tools.ietf.org/html/draft-ietf-httpbis-http2-17 )

  1. "Streams are identified with an unsigned 31-bit integer. Streams
    initiated by a client MUST use odd-numbered stream identifiers; those
    initiated by the server MUST use even-numbered stream identifiers. "
  2. "HTTP/1.1 requests that are upgraded to HTTP/2 (see Section 3.2) are
    responded to with a stream identifier of one (0x1). After the
    upgrade completes, stream 0x1 is "half closed (local)" to the client.
    Therefore, stream 0x1 cannot be selected as a new stream identifier
    by a client that upgrades from HTTP/1.1."
  3. "The identifier of a newly established stream MUST be numerically
    greater than all streams that the initiating endpoint has opened or
    reserved. "
  4. "An endpoint that receives an unexpected stream identifier MUST respond with a
    connection error (Section 5.4.1) of type PROTOCOL_ERROR."
  5. "A peer can limit the number of concurrently active streams using the
    SETTINGS_MAX_CONCURRENT_STREAMS parameter (see Section 6.5.2) within
    a SETTINGS frame. The maximum concurrent streams setting is specific
    to each endpoint and applies only to the peer that receives the
    setting. That is, clients specify the maximum number of concurrent
    streams the server can initiate, and servers specify the maximum
    number of concurrent streams the client can initiate."

@ctiller
Copy link
Member

ctiller commented Jul 20, 2015

The issue is mostly fixed, but further test cases are necessary.

Moving to GA as this is when I expect most of this work will be done.

@ctiller ctiller modified the milestone: GA Nov 5, 2015
@ctiller ctiller modified the milestones: 2016/02/15 Milestone, GA Jan 6, 2016
@ctiller ctiller assigned carl-mastrangelo and unassigned ctiller Jan 11, 2016
@ctiller
Copy link
Member

ctiller commented Jan 11, 2016

Re-assigning to Carl: rich tests in this space should come from our HTTP/2 interop suite.

@nicolasnoble nicolasnoble modified the milestones: GA, 2016/05/21 Milestone Apr 21, 2016
@ctiller ctiller removed this from the 2016/05/21 Milestone milestone Apr 27, 2016
@ctiller
Copy link
Member

ctiller commented Apr 27, 2016

There's definitely sufficient test coverage for C here. It'd be nice to get something into HTTP/2 interop at some point.

@dgquintas dgquintas added this to the 1.1 milestone Nov 16, 2016
@dgquintas
Copy link
Contributor

are we there yet?

@ctiller
Copy link
Member

ctiller commented Sep 12, 2017

good question

@ctiller ctiller closed this as completed Dec 11, 2017
@lock lock bot locked as resolved and limited conversation to collaborators Sep 30, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants