• Clemens Hammacher's avatar
    [wasm][gc] Fix deadlock during shutdown · 777d5084
    Clemens Hammacher authored
    The destructor of the {WasmGCForegroundTask} can be called immediately
    when scheduling that task (if the platform determines that the task can
    never execute anyway). In that case, we deregister the task from the
    wasm engine so we do not access it later (which would be UAF). This
    deregistration leads to recursively taking a mutex now.
    The only later access to the task happens to cancel the task. For this
    purpose, we can also use the {CancelableTaskManager} of the isolate,
    and avoid all code in the destructor. This should fix the reentrant
    mutex, which leads to a DCHECK failure in debug builds and deadlock
    in release builds.
    
    R=mstarzinger@chromium.org
    
    Bug: chromium:984970, v8:8217
    Change-Id: I14f05a21ea961ecc391dc59af3b5eebf31e0f873
    Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1706480Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#62804}
    777d5084
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
COMMON_OWNERS Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...