New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 604844 link

Starred by 8 users

Issue metadata

Status: Duplicate
Merged: issue 586183
Owner:
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug

Blocking:
issue 596622



Sign in to add a comment

Load callbacks are being dropped when loading multiple Image elements via src attribute.

Reported by erik.o...@gmail.com, Apr 19 2016

Issue description

Chrome Version       : Version 50.0.2661.75 (64-bit)
URLs (if applicable) : http://jsfiddle.net/b7bbbLxz/28/
Other browsers tested:
  Add OK or FAIL, along with the version, after other browsers where you
have tested this issue:
     Safari: OK
    Firefox: OK
         IE: OK

What steps will reproduce the problem?
(1) Navigate to this URL: http://jsfiddle.net/b7bbbLxz/28/
(2) Open Web Inspector's console.
(3) Hit the Run button.
(4) In the content area, note that all 10 (image 0-9) images have been added to the body and loaded.

What is the expected result?
- In the web inspector console, we can see a 'load' log for each successfully loaded URL.

What happens instead?
- Intermittently, some 'load' logs are not present, indicating the load callback was not triggered even though the image did load.

Please provide any additional information below. Attach a screenshot if
possible.
- This appears to be new in Chrome 50.
- There is a related ThreeJS discussion on it here: https://github.com/mrdoob/three.js/issues/8670
- Appears to be more reproducible when throttling network to 2G or loading a higher volume of images in this way.
- You may need to Run the JSFiddle multiple times to see the dropped logs. With 1-2s between Runs, the issue happens ~1/20 times. Running more frequently can trigger the issue every 3-4 attempts.
 
Cc: lizeb@chromium.org
Components: Blink>JavaScript>API Blink>Loader
Labels: Needs-Bisect
Status: Untriaged (was: Unconfirmed)
Thanks for the report and the jsfiddle! I can reproduce this using the steps above.

cc lizeb@ as loading triager. You may need to bisect this as my shift is ending soon.

Comment 2 by kbr@chromium.org, Apr 19 2016

Blocking: 596622
Cc: haraken@chromium.org japhet@chromium.org jochen@chromium.org sigbjo...@opera.com
Components: Blink>Bindings Blink>MemoryAllocator>GarbageCollection
Labels: -Pri-3 M-51 OS-All Pri-1
Owner: haraken@chromium.org
Status: Assigned (was: Untriaged)
Thank you for reporting this bug and for the test case.

I can't immediately reproduce it on Mac OS X in Chrome 50.0.2661.75 (Official Build) (64-bit) or 52.0.2712.0 (Official Build) canary (64-bit), but I haven't tested on Linux.

The bug may also be in the Blink garbage collector. We have been tracking down intermittent timeouts in the WebGL conformance tests (see  Issue 596622 ) that have been hard to reproduce. CC'ing related folks.

Kentaro, may I assign this to you to continue the triage process? Maybe extending this test case to load more images will provoke the bug more often.

We should figure out whether this bug is reproducible in Beta, and/or whether it's been fixed since then.

Cc: -sigbjo...@opera.com kinuko@chromium.org
Owner: kinuko@chromium.org
Hmm, I cannot reproduce the bug either.

kinuko-san: Would you triage this in the loading team?

I could only reproduce using network throttling in devtools (regular 2g) in 50.0.2661.75.

In 52.0.2712.0 canary, I could not repro after ~10 tries.
I ran a bisect for the fix:
You are probably looking for a change made after 378270 (known bad), but no later than 378278 (first known good).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/78fe4cc09db2ed7596f9966e6d3cc845f5b2ebfc..e2d58400ee8fcfd27b5927e0d00031ccb24df6ba

V8 GC change stands out:
https://codereview.chromium.org/1724263004

haraken@, do you think your change could have fixed this issue?

Yes, that's plausible.

Do we need to merge the change to some branch(es)?

Yeah I don't think it's in beta.
Status: Fixed (was: Assigned)
Thanks, marking this as fixed.

Cc: rnimmagadda@chromium.org
Labels: -Needs-Bisect TE-Verified-M50 TE-Verified-50.0.2661.75 M-50
Verified the fix on Windows 7, MAC (10.11.4) & Ubuntu Trusty (14.04) for Google Chrome Stable & Beta Versions - 50.0.2661.75

Screen-recording is attached.

TE-Verified labels are added.
604844.mov
2.8 MB Download
Thanks Charles for looking into this!
https://codereview.chromium.org/1724263004 is not in M50 afaik, so should it be merged?
Labels: Merge-Request-50
Owner: haraken@chromium.org
Hm. #9 says it's verified in 50.0.2661.75 but the change that's supposed to fix this is not yet merged in that version.  Yeah maybe we should try merging?  haraken or sigbjornf-- could you try merging it once it's approved?
Yes, I submitted a merge request on the CL.

Labels: -Merge-Request-50
Oh ok just saw  issue 586183 .  Removing the merge label from this one then.  Thanks!
It missed the M50 cut by a day or two, unfortunately. Perhaps something to include for a stable channel refresh.
#9 Does not use network throttling, which exposes the problem more frequently.

For my bisect, I used "regular 2g" and ran the jsfiddle ~5 times.
Thanks so much for your team's quick response to this.

For posterity, just wanted to note that bumping up the JSFiddle loop to cycle 100 times seems to be able to produce it in my environment (OSX 10.11) about 50% of the time so long as I kick off the next run fairly rapidly (right after the previous run completes.)

The easiest way to monitor it that I found was to just switch to the "Errors" panel in the console and let it tell me how many "Logs" were filtered (101 means all logged, anything smaller means something was missed.)

In any event, thank you for the quick attention to this.
Yeah bumping the number of requests helps. I also edited the fiddle so it just logged the total number of load events.

Comment 19 by kbr@chromium.org, Apr 20 2016

Mergedinto: 586183
Status: Duplicate (was: Fixed)
Thanks everyone for tracking down the root cause. For bookkeeping purposes I am duplicating this into  Issue 586183 .

Comment 20 Deleted

Sign in to add a comment