New issue
Advanced search Search tips

Issue 696808 link

Starred by 3 users

Issue metadata

Status: Duplicate
Merged: issue 681477
Owner:
Closed: Apr 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

Error loading resources via HTTP/2 when cache is disabled

Reported by dasa.pad...@gmail.com, Feb 28 2017

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/604.1.6 (KHTML, like Gecko) Version/10.2 Safari/604.1.6

Steps to reproduce the problem:
1. Open https://jsbin.com/pugatehuxu/1/edit?html,output
2. Open dev tools
3. Disable cache onNetwork tab
4. Click "Run with JS" and wait for Output to show "Dojo Version: 1.12.1 (a1e2d9d)"
5. Click "Run with JS" again

What is the expected behavior?
Output show show "Dojo Version: 1.12.1 (a1e2d9d)"

What went wrong?
Output is blank and Dev tools console shows script errors and some show net::ERR_FAILED. The network tab shows about a dozen requests that have a status of cancelled and sometimes another dozen with a status of failed.

Did this work before? N/A 

Chrome version: 56.0.2924.87  Channel: stable
OS Version: OS X 10.12.3
Flash Version: 24.0.0.221

Example Net event log:

38665: URL_REQUEST
https://js.arcgis.com/3.20/dojox/gfx/filters.js
Start Time: 2017-02-27 16:23:16.471

t=2132 [st= 0] +REQUEST_ALIVE  [dt=39]
t=2133 [st= 1]    URL_REQUEST_DELEGATE  [dt=0]
t=2133 [st= 1]   +URL_REQUEST_START_JOB  [dt=38]
                  --> load_flags = 33026 (BYPASS_CACHE | MAYBE_USER_GESTURE | VERIFY_EV_CERT)
                  --> method = "GET"
                  --> priority = "LOWEST"
                  --> url = "https://js.arcgis.com/3.20/dojox/gfx/filters.js"
t=2133 [st= 1]      URL_REQUEST_DELEGATE  [dt=0]
t=2133 [st= 1]      HTTP_CACHE_GET_BACKEND  [dt=0]
t=2133 [st= 1]      HTTP_CACHE_DOOM_ENTRY  [dt=0]
t=2133 [st= 1]      HTTP_CACHE_CREATE_ENTRY  [dt=0]
t=2133 [st= 1]      HTTP_CACHE_ADD_TO_ENTRY  [dt=0]
t=2133 [st= 1]     +HTTP_STREAM_REQUEST  [dt=1]
t=2133 [st= 1]        HTTP_STREAM_REQUEST_STARTED_JOB
                      --> source_dependency = 38672 (HTTP_STREAM_JOB)
t=2134 [st= 2]        HTTP_STREAM_REQUEST_BOUND_TO_JOB
                      --> source_dependency = 38672 (HTTP_STREAM_JOB)
t=2134 [st= 2]     -HTTP_STREAM_REQUEST
t=2134 [st= 2]     +HTTP_TRANSACTION_SEND_REQUEST  [dt=0]
t=2134 [st= 2]        HTTP_TRANSACTION_HTTP2_SEND_REQUEST_HEADERS
                      --> :authority: js.arcgis.com
                          :method: GET
                          :path: /3.20/dojox/gfx/filters.js
                          :scheme: https
                          accept: */*
                          accept-encoding: gzip, deflate, sdch, br
                          accept-language: en-US,en;q=0.8
                          cache-control: no-cache
                          cookie: [221 bytes were stripped]
                          pragma: no-cache
                          referer: https://null.jsbin.com/runner
                          user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
t=2134 [st= 2]     -HTTP_TRANSACTION_SEND_REQUEST
t=2134 [st= 2]     +HTTP_TRANSACTION_READ_HEADERS  [dt=37]
t=2171 [st=39]        HTTP2_STREAM_ERROR
                      --> description = "ABANDONED (stream_id=2001): https://js.arcgis.com/3.20/dojox/gfx/filters.js"
                      --> status = -3
                      --> stream_id = 2001
t=2171 [st=39]     -HTTP_TRANSACTION_READ_HEADERS
                    --> net_error = -3 (ERR_ABORTED)
t=2171 [st=39]   -URL_REQUEST_START_JOB
                  --> net_error = -3 (ERR_ABORTED)
t=2171 [st=39]    URL_REQUEST_DELEGATE  [dt=0]
t=2171 [st=39] -REQUEST_ALIVE
                --> net_error = -3 (ERR_ABORTED)

 
Here's the net-internals log file.
net-internals-log.json
6.2 MB View Download
This error also occurs on Windows and with Canary 58.
This is not a problem when using HTTP/1.
Labels: Needs-Triage-M56
Components: -Platform>DevTools Internals>Network

Comment 6 by jri@chromium.org, Mar 2 2017

Components: -Internals>Network Internals>Network>HTTP2
Owner: b...@chromium.org
Status: Available (was: Unconfirmed)
This is reproducible. Looks like there are tons of requests going out rapidly with cache disabled, and I see 1099 as the last opened stream. In the responses, I see only headers being received, but I don't see any response bodies.

bnc: can you take a look at this?

Comment 7 by b...@chromium.org, Mar 2 2017

Status: Assigned (was: Available)
On 32585 HTTP2_SESSION, Chrome receives a GOAWAY frame from the server:

t=2170 [st=555]  HTTP2_SESSION_GOAWAY
                 --> active_streams = 47
                 --> debug_data = "[0 bytes were stripped]"
                 --> last_accepted_stream_id = 1999
                 --> status = 0
                 --> unclaimed_streams = 0

The HTTP2_STREAM_ERROR immediately follows this in 38665 URL_REQUEST, so I suspect it is a direct consequence of the GOAWAY frame:

t=2171 [st=39]  HTTP2_STREAM_ERROR
                --> description = "ABANDONED (stream_id=2001): https://js.arcgis.com/3.20/dojox/gfx/filters.js"
                --> status = -3
                --> stream_id = 2001

There is no debug data in the GOAWAY frame, and the error code is NO_ERROR, which kind of means there is nothing wrong, just that the server feels like closing the connection.

1. Why would the server do this, and why does it only happen if cache is disabled?  Maybe too rapid requests?
2. Chrome should retry the request on a new connection in this case.



Comment 8 by b...@chromium.org, Apr 17 2017

Mergedinto: 681477
Status: Duplicate (was: Assigned)
Merging into  issue 681477 : Chrome should retry requests upon receiving a GOAWAY frame with error code NO_ERROR.

Sign in to add a comment