v8/test
Andreas Haas 1520a8518a [wasm] Run foreground compilation tasks as normal tasks
This CL makes foreground compilation tasks normal (i.e. not cancelable)
again, because otherwise a deadlock can happen. I think the reason why
the foreground tasks were cancelable was to make sure that all tasks
either finish correctly or get canceled. However, since the isolate can
only shut down on the main thread, this means that the foreground task
should have already finished when the isolate shuts down, or it should
not have started at all. I reordered the deletion of the AsyncCompileJob
though to make sure that an AsyncCompileJob is removed from
CompilationManager before its promise is resolved.

Here is the deadlock: The JS code which is executed after a promise is
resolved is executed within the task which resolves the promise. In case
of async compilation this means that some JS code is executed within a
CompileTask. In JS, the shutdown of the isolate can be triggered. During
the shutdown of the isolate, the CancelableTaskManager waits for all
registered cancelable tasks to complete, including the CompileTask of
async compilation. This means that the CancelableTaskManager waits for
itself to finish, which is a deadlock.

R=clemensh@chromium.org, mtrofin@chromium.org

Change-Id: I9f8c7fb2cfc5b9bfc53c761010b1590293bb82c9
Reviewed-on: https://chromium-review.googlesource.com/554733
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Mircea Trofin <mtrofin@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46343}
2017-06-30 09:33:17 +00:00
..
benchmarks Use --opt instead of --crankshaft in tests. 2017-04-28 14:20:39 +00:00
cctest [parsing/runtime] Remove InitializeVarGlobal 2017-06-30 08:03:04 +00:00
common [wasm] Use pending exceptions consistently 2017-06-29 10:23:45 +00:00
debugger [parsing/runtime] Remove InitializeVarGlobal 2017-06-30 08:03:04 +00:00
fuzzer [wasm][fuzzer] Handle Interpreter step limit exhaustion. 2017-06-22 14:28:53 +00:00
inspector [coverage] Add support for jumps (Break,Continue,Return) 2017-06-23 11:23:39 +00:00
intl Remove icu_case_mapping flag 2017-06-29 03:47:27 +00:00
js-perf-test [inspector] added simple js-perf-test for inspector 2017-06-20 10:32:05 +00:00
memory
message Revert "[parser] allow ASI when "await" or "yield" follows "let"" 2017-06-29 11:31:02 +00:00
mjsunit [wasm] Run foreground compilation tasks as normal tasks 2017-06-30 09:33:17 +00:00
mkgrokdump Fix compilation failure due to overload of virtual function 2017-05-24 21:19:48 +00:00
mozilla [test] Fix test status file simulator_run not evaluate to boolean error 2017-06-28 21:32:19 +00:00
preparser
promises-aplus
test262 [test262] Remove outdated SKIPs from status file. 2017-06-21 14:59:47 +00:00
unittests Revert "Switch tracing to use v8::TracingController" 2017-06-29 09:01:50 +00:00
wasm-spec-tests PPC/S390: Disable skip-stack-guard-page.js test in simulator build 2017-06-12 15:49:52 +00:00
webkit [test] Fix test status file simulator_run not evaluate to boolean error 2017-06-28 21:32:19 +00:00
bot_default.gyp [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
bot_default.isolate [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
BUILD.gn [wasm] Remove the wasm-asmjs fuzzer 2017-06-21 10:59:35 +00:00
default.gyp [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
default.isolate [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
optimize_for_size.gyp
optimize_for_size.isolate [debugger] basic test infrastructure for new debugger test api. 2016-10-21 06:38:05 +00:00
perf.gyp
perf.isolate Remove SIMD.js from V8. 2017-02-14 06:57:25 +00:00