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

Cloudfront - Chrome SPDY error #3744

Closed
AnaBelgun opened this issue Oct 24, 2019 · 5 comments · Fixed by #4425
Closed

Cloudfront - Chrome SPDY error #3744

AnaBelgun opened this issue Oct 24, 2019 · 5 comments · Fixed by #4425

Comments

@AnaBelgun
Copy link
Member

This bug ticket is ported from TerriaCube where it was first discovered.

Error message: ERR_SPDY_SERVER_REFUSED_STREAM

to test:

@AnaBelgun
Copy link
Member Author

AnaBelgun commented Oct 24, 2019

PR for handling the error (which doesn't solve the underlying problem): #3706

@AnaBelgun
Copy link
Member Author

response from Cloudfront:
The client browser is observing error "ERR_HTTP2_SERVER_REFUSED_STREAM" for the application hosted in CloudFront "https://terria-cube.terria.io/#share=s-zVC2mGEZCdM4icB2lA86tV8YZVg".
Upon investigation and as per RFC,A peer can limit the number of concurrently active streams using the SETTINGS_MAX_CONCURRENT_STREAMS parameter within a SETTINGS frame. Here server specified the maximum number of concurrent streams the client can initiate. Client MUST NOT exceed the limit set by their peer. An endpoint that receives a HEADERS frame that causes its advertised concurrent stream limit to be exceeded MUST treat this as a stream error of type PROTOCOL_ERROR or REFUSED_STREAM.
https://tools.ietf.org/html/rfc7540#page-22
Here, I believe by initiating multiple request from Chrome will initiates multiple HTTP streams which exceeds the allowed limit.
However to confirm this behaviour and to check if CloudFront Edge server has set any Hard limit for "maximum allowed HTTP2 stream" per TCP connection, this has been escalated to another CloudFront team.

@AnaBelgun
Copy link
Member Author

Comment from Terria:
We investigated that the server isn't setting a SETTINGS_MAX_CONCURRENT_STREAMS so it's staying at the default (infinite). If it were setting such a limit and that was the cause of the problem, it would imply that both Chrome and Firefox have a bug causing them to not honor that limit. Not very likely.

@rowanwins
Copy link
Contributor

We've made a number of changes to try and get around this...

@AnaBelgun
Copy link
Member Author

reopening this issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants