• Andreas Haas's avatar
    [wasm] Do not restart compilation tasks after compilation failed · 2301ffe7
    Andreas Haas authored
    This CL fixes a bad interleaving that can happen between the
    CompilationState and streaming compilation. In that particular
    interleaving, streaming compilation tries to restart compilation tasks
    after compilation failed already, which fails with a check in the
    CancelableTaskManager. The problem is the following:
    
    The CompilationState notifies the streaming decoder of compilation
    errors. After receiving the notification, the streaming decoder
    ignores all subsequent incoming bytes. However, the CompilationState
    does not notify the streaming decoder directly, it posts a task
    which will notify the streaming decoder. This means that between the
    failing of compilation and the notification of the streaming decoder
    there is a time window in which compilation already failed but the
    streaming decoder can still restart compilation tasks. The crash
    happened when this time window was hit.
    
    With this CL we check that compilation did not fail before we restart
    compilation tasks. I was never able to reproduce this crash, so I don't
    really know if this particular issue caused the crash.
    
    R=titzer@chromium.org
    
    Bug: chromium:840713
    Change-Id: Ic522b1c21a7d7749c1e7f6097aa450a09fb271cc
    Reviewed-on: https://chromium-review.googlesource.com/1075787Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#53428}
    2301ffe7
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides 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...
.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...
ChangeLog Loading commit data...
DEPS 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...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...