New issue
Advanced search Search tips

Issue 626736 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , All , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

EventListeners for non-Node EventTargets can get GC'd too early

Project Member Reported by rbyers@chromium.org, Jul 8 2016

Issue description

Revision range first seen: before 404148, probably no earlier than 403928

Failing about 50% of the time on Mac right now.

Link to first failing step log: https://uberchromegw.corp.google.com/i/chromium.perf/builders/Mac%2010.11%20Perf%20%282%29/builds/2206/steps/blob_storage.blob_storage/logs/stdio

If the test is disabled, please downgrade to Pri-2.

Will attempt to bisect.  Maybe related to  issue 595069 ?

Log:
[ RUN      ] blob-mass-create-150KBx200
(INFO) 2016-07-07 14:01:39,959 chrome_tracing_agent._CreateTraceConfigFile:248  Trace config file string: {"trace_config": {"included_categories": ["Blob", "blink.console"], "record_mode": "record-as-much-as-possible"}}
(INFO) 2016-07-07 14:01:39,987 tracing_backend.StartTracing:131  Start Tracing Request: {'params': {'transferMode': 'ReturnAsStream', 'traceConfig': {'recordMode': 'recordAsMuchAsPossible', 'includedCategories': ['Blob', 'blink.console']}}, 'method': 'Tracing.start'}
(INFO) 2016-07-07 14:01:39,990 cache_temperature.EnsurePageCacheTemperature:55  PageCacheTemperature: any
(WARNING) 2016-07-07 14:02:53,471 action_runner.__exit__:714  Exception was raised in the with statement block, the end of interaction record is not marked.
(INFO) 2016-07-07 14:02:53,472 browser.DumpStateUponFailure:326  *************** BROWSER STANDARD OUTPUT ***************
(INFO) 2016-07-07 14:02:53,472 browser.DumpStateUponFailure:328  2016-07-07 14:00:56.984 Google Chrome[7824:15042] NSWindow warning: adding an unknown subview: <FullSizeContentView: 0x7fc6d3eb6180>. Break on NSLog to debug.
2016-07-07 14:00:56.984 Google Chrome[7824:15042] Call stack:
(
    "+callStackSymbols disabled for performance reasons"
)

(INFO) 2016-07-07 14:02:53,472 browser.DumpStateUponFailure:331  *********** END OF BROWSER STANDARD OUTPUT ************
(INFO) 2016-07-07 14:02:53,472 browser.DumpStateUponFailure:333  ********************* BROWSER LOG *********************
(INFO) 2016-07-07 14:02:53,472 browser.DumpStateUponFailure:335  No log file
(INFO) 2016-07-07 14:02:53,472 browser.DumpStateUponFailure:338  ***************** END OF BROWSER LOG ******************
Traceback (most recent call last):
  File "/b/build/slave/Mac_10_11_Perf__2_/build/src/third_party/catapult/telemetry/telemetry/internal/story_runner.py", line 85, in _RunStoryAndProcessErrorIfNeeded
    state.RunStory(results)
  File "/b/build/slave/Mac_10_11_Perf__2_/build/src/third_party/catapult/telemetry/telemetry/page/shared_page_state.py", line 319, in RunStory
    self._current_page.Run(self)
  File "/b/build/slave/Mac_10_11_Perf__2_/build/src/third_party/catapult/telemetry/telemetry/page/__init__.py", line 99, in Run
    self.RunPageInteractions(action_runner)
  File "/b/build/slave/Mac_10_11_Perf__2_/build/src/tools/perf/page_sets/blob_workshop.py", line 61, in RunPageInteractions
    'doneReading === true || errors', 60)
  File "/b/build/slave/Mac_10_11_Perf__2_/build/src/third_party/catapult/telemetry/telemetry/internal/actions/action_runner.py", line 186, in WaitForJavaScriptCondition
    self._tab.WaitForJavaScriptExpression(condition, timeout_in_seconds)
  File "/b/build/slave/Mac_10_11_Perf__2_/build/src/third_party/catapult/telemetry/telemetry/internal/browser/web_contents.py", line 136, in WaitForJavaScriptExpression
    e.message + '\n' + debug_message)
TimeoutException: Timed out while waiting 60s for IsJavaScriptExpressionTrue.
Console output:
(debug) :1: Interaction.Action_CreateBlob/repeatable: 3.114ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.785ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.703ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.456ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.291ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.299ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.322ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.351ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.315ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.378ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.321ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.285ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.431ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.316ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.307ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.321ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.289ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.283ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.321ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.328ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.326ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.317ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.376ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.293ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.283ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.330ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.294ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.323ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.338ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.303ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.334ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.385ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.300ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.330ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.297ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.309ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.281ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.341ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.315ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.258ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.307ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.259ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.299ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 3.619ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.320ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.326ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.425ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.264ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.318ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.314ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.331ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.266ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.368ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.342ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.307ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.283ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.262ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.370ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.265ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.293ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.282ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.399ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.379ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.308ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.492ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.319ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.343ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.359ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.317ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.305ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.300ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.297ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.302ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.258ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.296ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.396ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.341ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.253ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.309ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.311ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.344ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.319ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.293ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.275ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.332ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.333ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.287ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.337ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.332ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.305ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.310ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.318ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.275ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.334ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.297ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.293ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.294ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.283ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.409ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.351ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.326ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.318ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.300ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.353ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.288ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.305ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.319ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.236ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.362ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.312ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.271ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.291ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.337ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.309ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.322ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.386ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.371ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.288ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.376ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.275ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.297ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.321ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.295ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.351ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.302ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.333ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.287ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.374ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.289ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.282ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.843ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.905ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.378ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.286ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.327ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.378ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.280ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.336ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.336ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.312ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.285ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.293ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.333ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.296ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.283ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.287ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.360ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.257ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.307ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.307ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.269ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.282ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.334ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.320ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.310ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.277ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.268ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.350ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.495ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.274ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.352ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.289ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.297ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.299ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.457ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.261ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.283ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.277ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.283ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.332ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.337ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.360ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.419ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.324ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.327ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.305ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.305ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.292ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.299ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.294ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.382ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.301ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.295ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.362ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.308ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.297ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.301ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.332ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.297ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.289ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.292ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.323ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.315ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.312ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.290ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.296ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.309ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.316ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.300ms
(debug) :1: Interaction.Action_CreateBlob/repeatable: 2.330ms


[  FAILED  ] blob-mass-create-150KBx200 (73684 ms)
 
Labels: OS-Linux
The same failures started happening intermittently on Linux about the same time: https://uberchromegw.corp.google.com/i/chromium.perf/builders/Linux%20Perf%20%282%29/builds/14167/steps/blob_storage.blob_storage/logs/stdio

Kicking off a bisect on Linux too since that may be more reliable.  Can't find status links, but they should post status to the bug.
Cc: jochen@chromium.org
Owner: jochen@chromium.org

=== Auto-CCing suspected CL author jochen@chromium.org ===

Hi jochen@chromium.org, the bisect results pointed to your CL below as possibly
causing a regression. Please have a look at this info and see whether
your CL be related.


===== BISECT JOB RESULTS =====
Status: completed


===== SUSPECTED CL(s) =====
Subject : Remove constructor from remaining functions that aren't constructors
Author  : jochen
Commit description:
  
BUG= 625823 
R=haraken@chromium.org,pfeldman@chromium.org

Review-Url: https://codereview.chromium.org/2124183003
Cr-Commit-Position: refs/heads/master@{#404137}
Commit  : 587b0b37724cdfc0eec5ed091b94eb8276bc05ce
Date    : Thu Jul 07 12:35:31 2016


===== TESTED REVISIONS =====
Revision         Exit Code  Std Dev  N   Good?
chromium@403928  0          N/A      20  good
chromium@404038  0          N/A      20  good
chromium@404093  0          N/A      20  good
chromium@404121  0          N/A      20  good
chromium@404135  0          N/A      20  good
chromium@404136  0          N/A      20  good
chromium@404137  1          N/A      20  bad    <--
chromium@404139  1          N/A      20  bad
chromium@404142  1          N/A      20  bad
chromium@404148  1          N/A      20  bad

Bisect job ran on: linux_perf_bisect
Bug ID: 626736

Test Command: src/tools/perf/run_benchmark -v --browser=release --output-format=chartjson --upload-results --also-run-disabled-tests blob_storage.blob_storage
Test Metric: Action_CreateBlob-blob-writes/blob-mass-create-150KBx200
Relative Change: Zero to non-zero
Score: 99.9

Buildbot stdio: http://build.chromium.org/p/tryserver.chromium.perf/builders/linux_perf_bisect/builds/6585
Job details: https://chromeperf.appspot.com/buildbucket_job_status/9007679413925877904


Not what you expected? We'll investigate and get back to you!
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5818680332517376

| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Tests>AutoBisect.  Thank you!

Comment 3 by rbyers@chromium.org, Jul 11 2016

Status: Assigned (was: Untriaged)
I guess it's possible that this is what broke this test somehow - bisect seems pretty definitive.  jochen@ can you please take a look or try speculatively reverting your patch?

Comment 4 by jochen@chromium.org, Jul 11 2016

i'll either fix or revert within the next 24h

Comment 5 by jochen@chromium.org, Jul 12 2016

Created revert here https://codereview.chromium.org/2139393002/

Comment 6 by jochen@chromium.org, Jul 12 2016

Cc: haraken@chromium.org
Components: -Blink>Storage Blink>Bindings
Labels: OS-All
Summary: EventListeners for non-Node EventTargets can get GC'd too early (was: blob_storage.blob_storage is timing out inconsistently on Mac (blob-mass-create-150KBx200))
I actually figured out what's wrong here, and since it's not related to my CL I cancelled the revert.

What's happening is that the event listener on the file reader gets garbage collected. That's because we only keep event listeners for nodes alive, and not event targets in general.

Will try to distill this into a layout test and then fix
Yeah, for non-Node event listeners, we currently need to use hasPendingActivity to keep alive the file reader object while it has event listeners. It should be replaced with traceWrapper() once it's ready.

Comment 8 by jochen@chromium.org, Jul 13 2016

hasPendingActivity is not enough, no? It won't keep the event listeners on the file reader alive
Ah, you're right. Yeah, we should extend the ability to keep alive event listeners to non-Node objects.

turns out that the event listener thing isn't to blame here. It seems wrong though anyway, so I've send you a CL for it.

The actual bug is that FileReader marks itself as inactive before firing the events, os if GC happens to kick in between those two points in time, stuff breaks.

I tried to write tests for both cases, but didn't manage to come up with anything more stable than running the blob workshop benchmark ten times in a row :-/
Could this potentially explain issue 592124 ?
hum, it looks different as there the file reader appears to still exist.
Kentaro pointed out that for non-nodes, we already keep event listeners alive, so the only bug here was that FileReader set its state to DONE before firing events.
Status: Fixed (was: Assigned)
Project Member

Comment 16 by bugdroid1@chromium.org, Jul 13 2016

Sign in to add a comment