-
Notifications
You must be signed in to change notification settings - Fork 17.8k
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
x/net/http2: h2spec violation 5.1 #26322
Comments
The test makes broad assumptions about how the server responds. In my case, the server send back some bogus message which triggered a race between the data frame and the streamError.
|
This I believe is an h2spec issue given 5.1 states:
|
5.1/6 is now reporting:
|
Opened summerwind/h2spec#89 for 5.1/5 |
5.1/6 has a similar issue with 5.1/5. |
I don't believe there is anything to do here. |
I am mistaken. Both 5.1/5 and 5.1/6 are variations of the same issue. The failure scenario has the response of both requests put on the stream 1 queue. When the response for the first request is sent back, we delete the queue. The RST_FRAME for the second request never occurs. One way to fix this is to reset the stream only when the queue length is 0. |
Can you send the Also, what's your server code? |
Nevermind, its racy. We already sent an END_STREAM for id=1 on the first response so sending an RST_FRAME would be odd. |
The server code for all tests are https://play.golang.org/p/-K6vYPNCFG2 |
For some reason, sending a HEADER(END_STREAM=true) + DATA(END_STREAM=true) tends to pass but HEADER (ES=true) + HEADER(ES=true) fails. The only difference between pass/fail is whether the response for request 2 is sent first or not. FAIL
PASS
|
These tests don't always fail so it is most likely an issue with the h2spec test.
The text was updated successfully, but these errors were encountered: