• Clemens Backes's avatar
    [inspector][fuzzer] Fix termination · 4510401d
    Clemens Backes authored
    Joining the thread from the watchdog is problematic, since e.g.
    {pthread_join} (the implementation of {Thread::Join} on POSIX systems)
    has undefined behaviour if multiple threads try to join at the same
    time. In practice, this leads to deadlocks.
    
    Thus implement termination by just calling {TaskRunner::Terminate}, but
    not {TaskRunner::Join}. This fixes the deadlocks in the inspector
    fuzzer.
    The inspector test binary is fixed simarly, even though there it seems
    to not cause problems so far.
    
    In both files, the {Terminate} function is inlined into callers because
    it's only a single line now, with one to two users.
    
    Also, replace the single fuzzer test (which is invalid javascript) by
    two tests: One called "invalid" explicitly, still with invalid
    javascript, and one empty file, which is valid input. That one
    reproduced the deadlock.
    
    R=szuend@chromium.org
    
    Bug: chromium:1142437
    Change-Id: I8fb98b0cdbf3ceff6af6849397e5da5a4e9acd3c
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2526384Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#71054}
    4510401d
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
debugging Loading commit data...
fuzzer Loading commit data...
fuzzilli Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-api-tests Loading commit data...
wasm-js Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
OWNERS Loading commit data...