New issue
Advanced search Search tips

Issue 693262 link

Starred by 3 users

Issue metadata

Status: WontFix
Owner:
Closed: Mar 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

net::ERR_SPDY_PROTOCOL_ERROR when making XMLHTTPRequest over HTTP2

Reported by joshuaol...@gmail.com, Feb 16 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

Steps to reproduce the problem:
1. Set up IIS 10 on Server 2016 with SSL
2. Create a simple webpage that includes jquery 
3. Create an empty file on the server called 'do-nothing.txt'
4. Execute this from the Console on the Developer Tools: $.get('/do-nothing.txt'); setTimeout(function() {$.get('/do-nothing.txt');}, 10000);

What is the expected behavior?
I would expect two successful GET requests to be executed, 10 seconds apart.

What went wrong?
The second request returns net::ERR_SPDY_PROTOCOL_ERROR. 

Did this work before? N/A 

Chrome version: 56.0.2924.87  Channel: stable
OS Version: 10.0
Flash Version: Shockwave Flash 24.0 r0

If the delay is changed to something less than about 9000 ms then both requests are successful. This error does not occur on FF, Edge, or IE 11.

 

Comment 1 by ajha@chromium.org, Feb 17 2017

Components: -Blink Internals>Network>HTTP2
Labels: Needs-Triage-M56

Comment 2 by b...@chromium.org, Feb 17 2017

Labels: -Needs-Triage-M56 Needs-Feedback
Owner: b...@chromium.org
Status: Assigned (was: Unconfirmed)
Could you please capture a network event log according to https://sites.google.com/a/chromium.org/dev/for-testers/providing-network-details and post it here?  Thank you.

There is a 10 second timeout related to PING frames in SpdySession, so that might be it.
Most certainaly.

Network event log attached. I was testing with calls to "do-nothing.txt" using this command at the console:

$.get('/rpc/do-nothing.txt?_=' + Math.random()); 
setTimeout(function() {$.get('/rpc/do-nothing.txt?_=' + Math.random());}, 10000);

The first one with the url parameter _=0.7601539528710615 was successful. Then 10 seconds later the call with the url parameter _=0.8330301438587031 failed with net::ERR_SPDY_PROTOCOL_ERROR.
net-internals-log.json
98.5 KB View Download

Comment 4 by b...@chromium.org, Feb 17 2017

Thank you.

Chrome seems to send one PING, but receive two acknowledgements:

t=13215 [st=10526]    HTTP2_SESSION_PING
                      --> is_ack = false
                      --> type = "sent"
                      --> unique_id = 1

...

t=13216 [st=10527]    HTTP2_SESSION_PING
                      --> is_ack = true
                      --> type = "received"
                      --> unique_id = 1
t=13216 [st=10527]    HTTP2_SESSION_PING
                      --> is_ack = true
                      --> type = "received"
                      --> unique_id = 0

This indeed is a protocol error.  This error is not triggered when waiting for less than 10 seconds, because Chrome does not send a PING frame in that case.  If this is indeed the case, that's a server error.  It is also the possible that Chrome processes incoming HTTP/2 bytes incorrectly.

Could you please do another network capture, but this time byte-level capture, as described in the Advanced section at the bottom of https://sites.google.com/a/chromium.org/dev/for-testers/providing-network-details ?  That will save raw bytes, allowing me to manually decode the bytes Chrome receives, and to determine if this is a client or server issue.

Thank you.
Network bug triager here.   Friendly ping, can you respond to comment #4?

Comment 6 by h...@xanland.nl, Mar 9 2017

I might be able to do traces within 18 hours. Experiencing the same problem
in both stable and dev. :)
The issue was related to a bug on the Barracuda Load Balancer. Information
provided but Comment #4 was used to help Barracuda release a patch. So,
thank you all around for the help.

Comment 8 by b...@chromium.org, Mar 9 2017

Status: WontFix (was: Assigned)
Closing this issue based on comment 7.  Feel free to open another issue if the problem is not solved by the Barracuda patch.

Sign in to add a comment