Issue metadata
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 descriptionChrome 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.
,
Apr 19 2016
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.
,
Apr 20 2016
Hmm, I cannot reproduce the bug either. kinuko-san: Would you triage this in the loading team?
,
Apr 20 2016
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.
,
Apr 20 2016
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?
,
Apr 20 2016
Yes, that's plausible. Do we need to merge the change to some branch(es)?
,
Apr 20 2016
Yeah I don't think it's in beta.
,
Apr 20 2016
Thanks, marking this as fixed.
,
Apr 20 2016
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.
,
Apr 20 2016
Thanks Charles for looking into this!
,
Apr 20 2016
https://codereview.chromium.org/1724263004 is not in M50 afaik, so should it be merged?
,
Apr 20 2016
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?
,
Apr 20 2016
Yes, I submitted a merge request on the CL.
,
Apr 20 2016
Oh ok just saw issue 586183 . Removing the merge label from this one then. Thanks!
,
Apr 20 2016
It missed the M50 cut by a day or two, unfortunately. Perhaps something to include for a stable channel refresh.
,
Apr 20 2016
#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.
,
Apr 20 2016
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.
,
Apr 20 2016
Yeah bumping the number of requests helps. I also edited the fiddle so it just logged the total number of load events.
,
Apr 20 2016
Thanks everyone for tracking down the root cause. For bookkeeping purposes I am duplicating this into Issue 586183 . |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by csharrison@chromium.org
, Apr 19 2016Components: Blink>JavaScript>API Blink>Loader
Labels: Needs-Bisect
Status: Untriaged (was: Unconfirmed)