New issue
Advanced search Search tips

Issue 628624 link

Starred by 10 users

Issue metadata

Status: Archived
Owner: ----
Closed: Jul 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: ----



Sign in to add a comment

Issues loading multiple images over HTTP/2

Reported by ant1...@gmail.com, Jul 15 2016

Issue description

Device name: HTC One M8

From "Settings > About Chrome"
Application version: 54.0.2798.0
OS: Android 6.0.0; HTC One_M8 Build/MRA58K

URLs (if applicable): 


Steps to reproduce:

(1) Load a page over HTTP/2 that loads multiple images using Javascript (for example the attached index.html, with the given cat.jpg)

Expected result:

All images load and have their correct filesize displayed
(with the example index.html file, the page should display "Loaded: 500/500 (0 errored)")

Actual result:

Some of the images will fail to load, appearing as a 200 response, but with a size of 0B in the Inspector
(with the example index.html file, the page displays "Loaded: 374/500 (126 errored)". The number of errors is variable, usually 100-200)


Notes:

This has been reproduced on multiple devices (HTC One M8, HTC 10, Samsung Galaxy S6 Edge)
This has been reproduced on multiple Chrome versions:
* Chrome 51.0.2704.81 (32-bit)
* Chrome Beta (52.0.2743.62) (32-bit)
* Chromium Developer Build 54.0.2798.0 (32-bit) (code fetched & build on 15/Jul/2016)

It was observed that Chrome Dev 53.0.2782.9 (64-bit) did not encounter this issue, so it may be limited to 32 bit builds.

This issue was originally encountered on a commercial load balancer acting as the HTTP/2 web server, but I was able to be reproduced using the attached minimal server using the Go standard library, running on an "Ubuntu 16.04 LTS (GNU/Linux 4.4.0-28-generic x86_64)" Digital Ocean droplet, with go version go1.6.2 linux/amd64.

The issue does not appear when requesting the assets over HTTP/1.1 (by running the given Go server with the environment variable "GODEBUG=http2server=0" set.

Dumping a chrome://net-internals recording shows a large number of HTTP2_SESSION_STALLED_MAX_STREAMS events, and following the stream of a given failed asset we see a HTTP2_SESSION_SEND_RST_STREAM with description = "", status = 5 & a valid stream_id.

It was seen that lowering the max concurrent stream limit to a much lower value (we went from 200 down to 25 on our commercial load balancer) reduces the likelihood of this issue, but does not fully resolve it.
 
index.html
896 bytes View Download
cat.jpg
105 KB View Download
web.go
238 bytes View Download

Comment 1 by mar...@chromium.org, Jul 15 2016

Components: Internals>Network>HTTP2
Project Member

Comment 2 by sheriffbot@chromium.org, Jul 17 2017

Status: Archived (was: Unconfirmed)
Issue has not been modified or commented on in the last 365 days, please re-open or file a new bug if this is still an issue.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Sign in to add a comment