From 86f0d14d2df3f1f3bdcc2f4e865bdf524e1037c4 Mon Sep 17 00:00:00 2001 From: Al Muthanna Athamina Date: Mon, 12 Dec 2022 11:11:39 +0100 Subject: [PATCH] [test] Add ClusterFuzz wheel to V8 and analyze crashes This replaces the dummy values for the crash analysis. We use the stack parser from ClusterFuzz to extract the crash type and state from the stderr of the output and we store it in the test results. We also added some tests to check the functionality with some example stderrs. Bug: v8:12313 Change-Id: I67994a752a7aa01cacfb7ebfe7e9d3d61820a4dc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4067428 Reviewed-by: Liviu Rau Commit-Queue: Almothana Athamneh Reviewed-by: Michael Achenbach Cr-Commit-Position: refs/heads/main@{#84789} --- tools/.vpython3 | 91 ++++++++++++++ .../testdata/expected_test_results1.json | 12 +- .../testdata/expected_test_results2.json | 8 +- tools/testrunner/testproc/indicators.py | 29 +---- .../testproc/stack_utils/__init__.py | 3 + .../testproc/stack_utils/clusterfuzz_fakes.py | 30 +++++ .../stack_utils/stack_analyzer_util.py | 66 ++++++++++ .../stack_utils/stack_analyzer_util_test.py | 50 ++++++++ .../testdata/code_kind.expected.json | 4 + .../stack_utils/testdata/code_kind.txt | 20 +++ .../testdata/data_race_1.expected.json | 4 + .../stack_utils/testdata/data_race_1.txt | 91 ++++++++++++++ .../testdata/data_race_2.expected.json | 4 + .../stack_utils/testdata/data_race_2.txt | 118 ++++++++++++++++++ .../data_race_clusterfuzz.expected.json | 4 + .../testdata/data_race_clusterfuzz.txt | 50 ++++++++ .../testdata/deserialization.expected.json | 4 + .../stack_utils/testdata/deserialization.txt | 43 +++++++ .../testdata/fata_js_oom.expected.json | 4 + .../stack_utils/testdata/fata_js_oom.txt | 48 +++++++ .../testdata/has_optimized_code.expected.json | 4 + .../testdata/has_optimized_code.txt | 30 +++++ .../testdata/heap_limit.expected.json | 4 + .../stack_utils/testdata/heap_limit.txt | 33 +++++ .../is_main_thread_barrier.expected.json | 4 + .../testdata/is_main_thread_barrier.txt | 30 +++++ .../is_main_thread_barrier_2.expected.json | 4 + .../testdata/is_main_thread_barrier_2.txt | 26 ++++ .../testdata/js_func_ref.expected.json | 4 + .../stack_utils/testdata/js_func_ref.txt | 55 ++++++++ .../testdata/marking_state.expected.json | 4 + .../stack_utils/testdata/marking_state.txt | 37 ++++++ .../testdata/maybe_is_cleared.expected.json | 4 + .../stack_utils/testdata/maybe_is_cleared.txt | 21 ++++ .../missing_deoptimization.expected.json | 4 + .../testdata/missing_deoptimization.txt | 24 ++++ .../testdata/seg_map_err.expected.json | 4 + .../stack_utils/testdata/seg_map_err.txt | 13 ++ .../testdata/segmentation_error.expected.json | 4 + .../testdata/segmentation_error.txt | 9 ++ .../testdata/segmentation_fault.expected.json | 4 + .../testdata/segmentation_fault.txt | 15 +++ .../testdata/stack_frame.expected.json | 4 + .../stack_utils/testdata/stack_frame.txt | 60 +++++++++ .../testdata/static_assertion_1.expected.json | 4 + .../testdata/static_assertion_1.txt | 37 ++++++ .../testdata/static_assertion_2.expected.json | 4 + .../testdata/static_assertion_2.txt | 37 ++++++ .../storage_is_populated.expected.json | 4 + .../testdata/storage_is_populated.txt | 35 ++++++ .../topmost_optimized_code.expected.json | 4 + .../testdata/topmost_optimized_code.txt | 24 ++++ .../testdata/type_assertion_1.expected.json | 4 + .../stack_utils/testdata/type_assertion_1.txt | 1 + .../testdata/type_assertion_2.expected.json | 4 + .../stack_utils/testdata/type_assertion_2.txt | 5 + .../testdata/unreachable_code.expected.json | 4 + .../stack_utils/testdata/unreachable_code.txt | 28 +++++ tools/testrunner/utils/test_utils.py | 2 +- tools/v8_presubmit.py | 3 +- 60 files changed, 1245 insertions(+), 39 deletions(-) create mode 100644 tools/.vpython3 create mode 100644 tools/testrunner/testproc/stack_utils/__init__.py create mode 100644 tools/testrunner/testproc/stack_utils/clusterfuzz_fakes.py create mode 100644 tools/testrunner/testproc/stack_utils/stack_analyzer_util.py create mode 100644 tools/testrunner/testproc/stack_utils/stack_analyzer_util_test.py create mode 100644 tools/testrunner/testproc/stack_utils/testdata/code_kind.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/code_kind.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/data_race_1.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/data_race_1.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/data_race_2.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/data_race_2.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/data_race_clusterfuzz.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/data_race_clusterfuzz.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/deserialization.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/deserialization.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/fata_js_oom.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/fata_js_oom.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/has_optimized_code.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/has_optimized_code.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/heap_limit.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/heap_limit.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier_2.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier_2.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/js_func_ref.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/js_func_ref.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/marking_state.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/marking_state.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/maybe_is_cleared.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/maybe_is_cleared.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/missing_deoptimization.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/missing_deoptimization.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/seg_map_err.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/seg_map_err.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/segmentation_error.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/segmentation_error.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/segmentation_fault.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/segmentation_fault.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/stack_frame.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/stack_frame.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/static_assertion_1.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/static_assertion_1.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/static_assertion_2.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/static_assertion_2.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/storage_is_populated.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/storage_is_populated.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/topmost_optimized_code.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/topmost_optimized_code.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/type_assertion_1.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/type_assertion_1.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/type_assertion_2.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/type_assertion_2.txt create mode 100644 tools/testrunner/testproc/stack_utils/testdata/unreachable_code.expected.json create mode 100644 tools/testrunner/testproc/stack_utils/testdata/unreachable_code.txt diff --git a/tools/.vpython3 b/tools/.vpython3 new file mode 100644 index 0000000000..38ceb4d202 --- /dev/null +++ b/tools/.vpython3 @@ -0,0 +1,91 @@ +# This is a vpython "spec" file. +# +# It describes patterns for python wheel dependencies of the python scripts in +# the chromium repo, particularly for dependencies that have compiled components +# (since pure-python dependencies can be easily vendored into third_party). +# +# When vpython is invoked, it finds this file and builds a python VirtualEnv, +# containing all of the dependencies described in this file, fetching them from +# CIPD (the "Chrome Infrastructure Package Deployer" service). Unlike `pip`, +# this never requires the end-user machine to have a working python extension +# compilation environment. All of these packages are built using: +# https://chromium.googlesource.com/infra/infra/+/main/infra/tools/dockerbuild/ +# +# All python scripts in the repo share this same spec, to avoid dependency +# fragmentation. +# +# If you have depot_tools installed in your $PATH, you can invoke python scripts +# in this repo by running them as you normally would run them, except +# substituting `vpython` instead of `python` on the command line, e.g.: +# vpython path/to/script.py some --arguments +# +# Read more about `vpython` and how to modify this file here: +# https://chromium.googlesource.com/infra/infra/+/main/doc/users/vpython.md + +python_version: "3.8" + +# The default set of platforms vpython checks does not yet include mac-arm64. +# Setting `verify_pep425_tag` to the list of platforms we explicitly must support +# allows us to ensure that vpython specs stay mac-arm64-friendly +verify_pep425_tag: [ + {python: "cp38", abi: "cp38", platform: "manylinux1_x86_64"}, + {python: "cp38", abi: "cp38", platform: "linux_arm64"}, + + {python: "cp38", abi: "cp38", platform: "macosx_10_10_intel"}, + {python: "cp38", abi: "cp38", platform: "macosx_11_0_arm64"}, + + {python: "cp38", abi: "cp38", platform: "win32"}, + {python: "cp38", abi: "cp38", platform: "win_amd64"} +] + +# TODO(https://crbug.com/898348): Add in necessary wheels as Python3 versions +# become available. +wheel: < + name: "infra/python/wheels/six-py2_py3" + version: "version:1.15.0" +> + +wheel: < + name: "infra/python/wheels/coverage/${vpython_platform}" + version: "version:5.5.chromium.3" +> + +wheel: < + name: "infra/python/wheels/pbr-py2_py3" + version: "version:3.0.0" +> + +wheel: < + name: "infra/python/wheels/funcsigs-py2_py3" + version: "version:1.0.2" +> + +wheel: < + name: "infra/python/wheels/mock-py2_py3" + version: "version:2.0.0" +> + +wheel: < + name: "infra/python/wheels/numpy/${vpython_platform}" + version: "version:1.2x.supported.1" +> + +wheel: < + name: "infra/python/wheels/protobuf-py3" + version: "version:3.19.3" +> + +wheel: < + name: "infra/python/wheels/requests-py2_py3" + version: "version:2.13.0" +> + +wheel: < + name: "infra/python/wheels/pyyaml/${vpython_platform}" + version: "version:5.4.1.chromium.1" +> + +wheel: < + name: "infra/python/wheels/clusterfuzz-py2_py3" + version: "version:2.5.6-5c85ed3d46137b17da04c59bcd805ee5" +> diff --git a/tools/testrunner/testdata/expected_test_results1.json b/tools/testrunner/testdata/expected_test_results1.json index 446291c2d1..e0641739bc 100644 --- a/tools/testrunner/testdata/expected_test_results1.json +++ b/tools/testrunner/testdata/expected_test_results1.json @@ -3,8 +3,8 @@ "results": [ { "command": "/usr/bin/python out/build/d8_mocked.py --test strawberries --random-seed=123 --nohard-abort --testing-d8-test-runner", - "crash_state": "Dummy State", - "crash_type": "Dummy Type", + "crash_state": "", + "crash_type": "", "duration": 1, "error_details": "+Mock diff", "exit_code": 1, @@ -31,8 +31,8 @@ }, { "command": "/usr/bin/python out/build/d8_mocked.py --test strawberries --random-seed=123 --nohard-abort --testing-d8-test-runner", - "crash_state": "Dummy State", - "crash_type": "Dummy Type", + "crash_state": "", + "crash_type": "", "duration": 1, "error_details": "+Mock diff", "exit_code": 1, @@ -59,8 +59,8 @@ }, { "command": "/usr/bin/python out/build/d8_mocked.py --test strawberries --random-seed=123 --nohard-abort --testing-d8-test-runner", - "crash_state": "Dummy State", - "crash_type": "Dummy Type", + "crash_state": "", + "crash_type": "", "duration": 1, "error_details": "+Mock diff", "exit_code": 1, diff --git a/tools/testrunner/testdata/expected_test_results2.json b/tools/testrunner/testdata/expected_test_results2.json index 9708d80a40..a023d825ab 100644 --- a/tools/testrunner/testdata/expected_test_results2.json +++ b/tools/testrunner/testdata/expected_test_results2.json @@ -3,8 +3,8 @@ "results": [ { "command": "/usr/bin/python out/build/d8_mocked.py bananaflakes --random-seed=123 --nohard-abort --testing-d8-test-runner", - "crash_state": "Dummy State", - "crash_type": "Dummy Type", + "crash_state": "", + "crash_type": "", "duration": 1, "error_details": null, "exit_code": 1, @@ -30,8 +30,8 @@ }, { "command": "/usr/bin/python out/build/d8_mocked.py bananaflakes --random-seed=123 --nohard-abort --testing-d8-test-runner", - "crash_state": "Dummy State", - "crash_type": "Dummy Type", + "crash_state": "", + "crash_type": "", "duration": 1, "error_details": null, "exit_code": 0, diff --git a/tools/testrunner/testproc/indicators.py b/tools/testrunner/testproc/indicators.py index 2a63d67cdb..2f84119441 100644 --- a/tools/testrunner/testproc/indicators.py +++ b/tools/testrunner/testproc/indicators.py @@ -11,6 +11,7 @@ import time from . import base from . import util +from .stack_utils import stack_analyzer_util def print_failure_header(test, is_flaky=False): @@ -344,26 +345,6 @@ class MonochromeProgressIndicator(CompactProgressIndicator): print(("\r" + (" " * last_length) + "\r"), end='') -class CrashInfo: - """Parsed crash information.""" - - def __init__(self): - self.crash_stacktrace = '' - self.crash_type = 'Dummy Type' - self.crash_state = 'Dummy State' - - -class StackParser: - """Stack parser.""" - - def parse(self, stacktrace: str) -> CrashInfo: - """Parse a stacktrace.""" - state = CrashInfo() - state.crash_stacktrace = stacktrace - - return state - - class JsonTestProgressIndicator(ProgressIndicator): def __init__(self, context, options, test_count): @@ -380,6 +361,7 @@ class JsonTestProgressIndicator(ProgressIndicator): self.results = [] self.duration_sum = 0 self.test_count = 0 + self.stack_parser = stack_analyzer_util.create_stack_parser() def on_test_result(self, test, result): self.process_results(test, result.as_list) @@ -405,12 +387,7 @@ class JsonTestProgressIndicator(ProgressIndicator): "error_details": result.error_details, }) - stack_parser = StackParser() - stderr_analysis = stack_parser.parse(output.stderr) - record.update({ - "crash_state": stderr_analysis.crash_state, - "crash_type": stderr_analysis.crash_type, - }) + record.update(self.stack_parser.analyze_crash(output.stderr)) self.results.append(record) diff --git a/tools/testrunner/testproc/stack_utils/__init__.py b/tools/testrunner/testproc/stack_utils/__init__.py new file mode 100644 index 0000000000..fd7718a4a6 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/__init__.py @@ -0,0 +1,3 @@ +# Copyright 2022 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. diff --git a/tools/testrunner/testproc/stack_utils/clusterfuzz_fakes.py b/tools/testrunner/testproc/stack_utils/clusterfuzz_fakes.py new file mode 100644 index 0000000000..d475c7b724 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/clusterfuzz_fakes.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +# Copyright 2022 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This file exists to be able to mock some of the imports in ClusterFuzz. Since +# we only need a specific functionality in ClusterFuzz (Stack Analysis) we do +# not need most of the imports that it uses, so we fake them here in order to +# not crash when we run. + + +def empty_fn(*args, **kwargs): + raise 'empty function was used' + + +kernel_utils, \ +storage, \ +fetch_artifact, \ +settings, \ +symbols_downloader, \ += [empty_fn] * 5 + + +class ProjectConfig: + + def get(self): + """Return empty config properties when ClusterFuzz tries to find a project + config. + """ + return None diff --git a/tools/testrunner/testproc/stack_utils/stack_analyzer_util.py b/tools/testrunner/testproc/stack_utils/stack_analyzer_util.py new file mode 100644 index 0000000000..4e3eb47bad --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/stack_analyzer_util.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 +# Copyright 2022 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import logging +import os +import sys + + +def fake_clusterfuzz_imports(modules): + for module in modules: + sys.modules[module] = __import__('clusterfuzz_fakes') + + +def pre_clusterfuzz_import(): + local_path = os.path.dirname(os.path.abspath(__file__)) + sys.path.append(local_path) + + fake_clusterfuzz_imports([ + 'clusterfuzz._internal.platforms.android', + 'clusterfuzz._internal.google_cloud_utils', + 'clusterfuzz._internal.config.local_config', + ]) + + +class CustomStackParser: + + def __init__(self): + pre_clusterfuzz_import() + + from clusterfuzz.stacktraces import StackParser + from clusterfuzz.stacktraces import llvm_test_one_input_override + from clusterfuzz.stacktraces import constants + + self.stack_parser = StackParser() + self.constants = constants + self.llvm_test_one_input_override = llvm_test_one_input_override + + def analyze_crash(self, stderr): + try: + stderr_analysis = self.stack_parser.parse(stderr) + return { + "crash_state": stderr_analysis.crash_state.strip(), + "crash_type": stderr_analysis.crash_type.strip(), + } + except Exception as e: + logging.info(e) + return { + "crash_state": "Unknown", + "crash_type": "Unknown", + } + + +class EmptyStackParser: + + def analyze_crash(self, stderr): + return {} + + +def create_stack_parser(): + try: + return CustomStackParser() + except ImportError as e: + logging.info(e) + return EmptyStackParser() diff --git a/tools/testrunner/testproc/stack_utils/stack_analyzer_util_test.py b/tools/testrunner/testproc/stack_utils/stack_analyzer_util_test.py new file mode 100644 index 0000000000..f419f297cf --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/stack_analyzer_util_test.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +# Copyright 2022 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import json +import os +import sys +import unittest + +TOOLS_PATH = os.path.dirname( + os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.append(TOOLS_PATH) + +TEST_DATA_ROOT = os.path.join(TOOLS_PATH, 'testproc', 'stack_utils', 'testdata') + +from testproc.stack_utils.stack_analyzer_util import create_stack_parser + + +class TestScript(unittest.TestCase): + # TODO(almuthanna): find out why these test cases are not analyzed and add + # logic to make them pass. + skipped_tests = [ + 'type_assertion_1.txt', + 'type_assertion_2.txt', + 'static_assertion_2.txt', + 'static_assertion_1.txt', + ] + + def logs_test(self): + stack_parser = create_stack_parser() + for file in [f for f in os.listdir(TEST_DATA_ROOT) if f.endswith('.txt')]: + if file in self.skipped_tests: + continue + filepath = os.path.join(TEST_DATA_ROOT, file) + exp_filepath = os.path.join(TEST_DATA_ROOT, + file.replace('.txt', '.expected.json')) + with self.subTest(test_name=file[:-4]): + with open(filepath) as f: + result = stack_parser.analyze_crash(f.read()) + with open(exp_filepath, 'r') as exp_f: + expectation = json.load(exp_f) + self.assertDictEqual(result, expectation) + + def test_all(self): + self.logs_test() + + +if __name__ == '__main__': + unittest.main() diff --git a/tools/testrunner/testproc/stack_utils/testdata/code_kind.expected.json b/tools/testrunner/testproc/stack_utils/testdata/code_kind.expected.json new file mode 100644 index 0000000000..e0fdf04d84 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/code_kind.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "CHECK failure", + "crash_state": "kind() == CodeKind::BASELINE" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/code_kind.txt b/tools/testrunner/testproc/stack_utils/testdata/code_kind.txt new file mode 100644 index 0000000000..d7affc63e8 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/code_kind.txt @@ -0,0 +1,20 @@ +Warning: disabling flag --regexp_tier_up due to conflicting flags + + +# +# Fatal error in , line 0 +# Check failed: kind() == CodeKind::BASELINE. +# +# +# +#FailureMessage Object: 0x7fff55c98300 +==== C stack trace =============================== + + /b/s/w/ir/out/build/d8(+0xec56a3) [0x55fbef6236a3] + /b/s/w/ir/out/build/d8(+0xec4f4b) [0x55fbef622f4b] + /b/s/w/ir/out/build/d8(+0xebb4d5) [0x55fbef6194d5] + /b/s/w/ir/out/build/d8(+0x42cd8c) [0x55fbeeb8ad8c] + /b/s/w/ir/out/build/d8(+0x42bd45) [0x55fbeeb89d45] + [0x2c4d0000c1ca] +Received signal 6 +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/data_race_1.expected.json b/tools/testrunner/testproc/stack_utils/testdata/data_race_1.expected.json new file mode 100644 index 0000000000..dc4e945728 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/data_race_1.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Data race\nWRITE 8", + "crash_state": "NULL" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/data_race_1.txt b/tools/testrunner/testproc/stack_utils/testdata/data_race_1.txt new file mode 100644 index 0000000000..e1e21610e0 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/data_race_1.txt @@ -0,0 +1,91 @@ +================== +WARNING: ThreadSanitizer: data race (pid=24781) + Write of size 8 at 0x7e9b00080008 by main thread (mutexes: write M0): + #0 operator|= src/base/flags.h:47:11 (d8+0xa03eff) (BuildId: 2d1896fcafe8220c) + #1 operator|= src/base/flags.h:66:46 (d8+0xa03eff) + #2 SetFlag src/heap/basic-memory-chunk.h:198:48 (d8+0xa03eff) + #3 MarkWasUsedForAllocation src/heap/memory-chunk.h:223:37 (d8+0xa03eff) + #4 v8::internal::PagedSpaceBase::SetLinearAllocationArea(unsigned long, unsigned long) src/heap/paged-spaces.cc:435:13 (d8+0xa03eff) + #5 v8::internal::PagedSpaceBase::TryAllocationFromFreeListMain(unsigned long, v8::internal::AllocationOrigin) src/heap/paged-spaces.cc:653:3 (d8+0xa04b8e) (BuildId: 2d1896fcafe8220c) + #6 v8::internal::PagedSpaceBase::RawRefillLabMain(int, v8::internal::AllocationOrigin) src/heap/paged-spaces.cc:991:7 (d8+0xa066b4) (BuildId: 2d1896fcafe8220c) + #7 v8::internal::PagedSpaceBase::RefillLabMain(int, v8::internal::AllocationOrigin) src/heap/paged-spaces.cc:960:10 (d8+0xa065f7) (BuildId: 2d1896fcafe8220c) + #8 EnsureAllocation src/heap/paged-spaces-inl.h:89:10 (d8+0x9f33a8) (BuildId: 2d1896fcafe8220c) + #9 EnsureAllocation src/heap/new-spaces-inl.h:109:24 (d8+0x9f33a8) + #10 v8::internal::PagedNewSpace::EnsureAllocation(int, v8::internal::AllocationAlignment, v8::internal::AllocationOrigin, int*) src/heap/new-spaces.h:800:25 (d8+0x9f33a8) + #11 AllocateRawUnaligned src/heap/spaces-inl.h:277:8 (d8+0x8b41ea) (BuildId: 2d1896fcafe8220c) + #12 AllocateRawSlow src/heap/spaces-inl.h:331:13 (d8+0x8b41ea) + #13 AllocateRaw src/heap/spaces-inl.h:269:31 (d8+0x8b41ea) + #14 AllocateRaw<(v8::internal::AllocationType)0> src/heap/heap-allocator-inl.h:107:28 (d8+0x8b41ea) + #15 AllocateRawWith<(v8::internal::HeapAllocator::AllocationRetryMode)1> src/heap/heap-allocator-inl.h:230:14 (d8+0x8b41ea) + #16 v8::internal::Factory::AllocateRawWithAllocationSite(v8::internal::Handle, v8::internal::AllocationType, v8::internal::Handle) src/heap/factory.cc:356:36 (d8+0x8b41ea) + #17 v8::internal::Factory::NewJSObjectFromMap(v8::internal::Handle, v8::internal::AllocationType, v8::internal::Handle) src/heap/factory.cc:2728:7 (d8+0x8ba650) (BuildId: 2d1896fcafe8220c) + #18 __RT_impl_Runtime_NewArray src/runtime/runtime-array.cc:116:58 (d8+0xfa02b1) (BuildId: 2d1896fcafe8220c) + #19 v8::internal::Runtime_NewArray(int, unsigned long*, v8::internal::Isolate*) src/runtime/runtime-array.cc:44:1 (d8+0xfa02b1) + #20 Builtins_AsyncFromSyncIteratorPrototypeThrow setup-isolate-deserialize.cc (d8+0x1c3cd77) + #21 v8::internal::Execution::CallScript(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle) src/execution/execution.cc:538:10 (d8+0x8187b5) (BuildId: 2d1896fcafe8220c) + #22 v8::Script::Run(v8::Local, v8::Local) src/api/api.cc:2151:7 (d8+0x5b210e) (BuildId: 2d1896fcafe8220c) + #23 v8::Script::Run(v8::Local) src/api/api.cc:2078:10 (d8+0x5b1840) (BuildId: 2d1896fcafe8220c) + #24 v8::Shell::ExecuteString(v8::Isolate*, v8::Local, v8::Local, v8::Shell::PrintResult, v8::Shell::ReportExceptions, v8::Shell::ProcessMessageQueue) src/d8/d8.cc:879:28 (d8+0x5703cb) (BuildId: 2d1896fcafe8220c) + #25 v8::SourceGroup::Execute(v8::Isolate*) src/d8/d8.cc:4379:10 (d8+0x588620) (BuildId: 2d1896fcafe8220c) + #26 v8::Shell::RunMain(v8::Isolate*, bool) src/d8/d8.cc:5107:39 (d8+0x58c487) (BuildId: 2d1896fcafe8220c) + #27 v8::Shell::Main(int, char**) src/d8/d8.cc:5886:18 (d8+0x58efe0) (BuildId: 2d1896fcafe8220c) + #28 main src/d8/d8.cc:5976:43 (d8+0x58f4ee) (BuildId: 2d1896fcafe8220c) + + Previous read of size 8 at 0x7e9b00080008 by thread T6: + #0 GetFlags src/heap/basic-memory-chunk.h:211:45 (d8+0x88ee2f) (BuildId: 2d1896fcafe8220c) + #1 ShouldSkipEvacuationSlotRecording src/heap/basic-memory-chunk.h:240:29 (d8+0x88ee2f) + #2 RecordSlot src/heap/mark-compact-inl.h:68:21 (d8+0x88ee2f) + #3 void v8::internal::ConcurrentMarkingVisitor::RecordSlot(v8::internal::HeapObject, v8::internal::CompressedHeapObjectSlot, v8::internal::HeapObject) src/heap/concurrent-marking.cc:481:5 (d8+0x88ee2f) + #4 void v8::internal::MarkingVisitorBase::ProcessStrongHeapObject(v8::internal::HeapObject, v8::internal::CompressedHeapObjectSlot, v8::internal::HeapObject) src/heap/marking-visitor-inl.h:49:23 (d8+0x88ed97) (BuildId: 2d1896fcafe8220c) + #5 VisitPointersImpl src/heap/marking-visitor-inl.h:90:7 (d8+0x894a3a) (BuildId: 2d1896fcafe8220c) + #6 VisitPointers src/heap/marking-visitor.h:197:5 (d8+0x894a3a) + #7 IteratePointers src/objects/objects-body-descriptors-inl.h:127:6 (d8+0x894a3a) + #8 IterateBody src/objects/objects-body-descriptors-inl.h:358:5 (d8+0x894a3a) + #9 int v8::internal::ConcurrentMarkingVisitorUtility::VisitJSObjectSubclass(v8::internal::ConcurrentMarkingVisitor*, v8::internal::Map, v8::internal::JSFunction) src/heap/concurrent-marking.cc:102:5 (d8+0x894a3a) + #10 VisitJSObjectSubclass src/heap/concurrent-marking.cc:489:12 (d8+0x884a6f) (BuildId: 2d1896fcafe8220c) + #11 VisitJSFunction src/heap/marking-visitor-inl.h:178:34 (d8+0x884a6f) + #12 Visit src/heap/objects-visiting-inl.h:65:5 (d8+0x884a6f) + #13 v8::internal::ConcurrentMarking::RunMajor(v8::JobDelegate*, v8::base::EnumSet, unsigned int, bool) src/heap/concurrent-marking.cc:758:41 (d8+0x884a6f) + #14 v8::internal::ConcurrentMarking::JobTaskMajor::Run(v8::JobDelegate*) src/heap/concurrent-marking.cc:606:28 (d8+0x898719) (BuildId: 2d1896fcafe8220c) + #15 v8::DelayedTasksPlatform::DelayedJob::Run(v8::JobDelegate*) src/d8/d8-platforms.cc:304:18 (d8+0x565b28) (BuildId: 2d1896fcafe8220c) + #16 v8::platform::DefaultJobWorker::Run() src/libplatform/default-job.h:147:18 (d8+0x1e5184b) (BuildId: 2d1896fcafe8220c) + #17 v8::platform::DefaultWorkerThreadsTaskRunner::WorkerThread::Run() src/libplatform/default-worker-threads-task-runner.cc:73:11 (d8+0x1e586b0) (BuildId: 2d1896fcafe8220c) + #18 NotifyStartedAndRun src/base/platform/platform.h:596:5 (d8+0x1e4bc22) (BuildId: 2d1896fcafe8220c) + #19 v8::base::ThreadEntry(void*) src/base/platform/platform-posix.cc:1112:11 (d8+0x1e4bc22) + + Mutex M0 (0x7b5400000710) created at: + #0 pthread_mutex_init /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1316:3 (d8+0x4df75f) (BuildId: 2d1896fcafe8220c) + #1 InitializeNativeHandle src/base/platform/mutex.cc:99:12 (d8+0x1e4408b) (BuildId: 2d1896fcafe8220c) + #2 v8::base::Mutex::Mutex() src/base/platform/mutex.cc:152:3 (d8+0x1e4408b) + #3 v8::internal::PagedSpaceBase::PagedSpaceBase(v8::internal::Heap*, v8::internal::AllocationSpace, v8::internal::Executability, v8::internal::FreeList*, v8::internal::AllocationCounter&, v8::internal::LinearAllocationArea&, v8::internal::LinearAreaOriginalData&, v8::internal::CompactionSpaceKind) src/heap/paged-spaces.cc:120:17 (d8+0xa023d8) (BuildId: 2d1896fcafe8220c) + #4 PagedSpaceForNewSpace src/heap/new-spaces.cc:923:7 (d8+0x9f1f66) (BuildId: 2d1896fcafe8220c) + #5 v8::internal::PagedNewSpace::PagedNewSpace(v8::internal::Heap*, unsigned long, unsigned long, v8::internal::LinearAllocationArea&) src/heap/new-spaces.cc:1042:7 (d8+0x9f1f66) + #6 make_unique buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h:670:30 (d8+0x90c4a9) (BuildId: 2d1896fcafe8220c) + #7 v8::internal::Heap::SetUpSpaces(v8::internal::LinearAllocationArea&, v8::internal::LinearAllocationArea&) src/heap/heap.cc:5559:27 (d8+0x90c4a9) + #8 v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) src/execution/isolate.cc:4264:9 (d8+0x843e08) (BuildId: 2d1896fcafe8220c) + #9 v8::internal::Isolate::InitWithSnapshot(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) src/execution/isolate.cc:4036:10 (d8+0x8455f9) (BuildId: 2d1896fcafe8220c) + #10 v8::internal::Snapshot::Initialize(v8::internal::Isolate*) src/snapshot/snapshot.cc:182:27 (d8+0x10bc8e1) (BuildId: 2d1896fcafe8220c) + #11 v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) src/api/api.cc:8836:8 (d8+0x5dd97f) (BuildId: 2d1896fcafe8220c) + #12 v8::Isolate::New(v8::Isolate::CreateParams const&) src/api/api.cc:8872:3 (d8+0x5ddc45) (BuildId: 2d1896fcafe8220c) + #13 v8::Shell::Main(int, char**) src/d8/d8.cc:5788:22 (d8+0x58e70c) (BuildId: 2d1896fcafe8220c) + #14 main src/d8/d8.cc:5976:43 (d8+0x58f4ee) (BuildId: 2d1896fcafe8220c) + + Thread T6 'V8 DefaultWorke' (tid=24798, running) created by main thread at: + #0 pthread_create /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1022:3 (d8+0x4ddffb) (BuildId: 2d1896fcafe8220c) + #1 v8::base::Thread::Start() src/base/platform/platform-posix.cc:1144:14 (d8+0x1e4bb36) (BuildId: 2d1896fcafe8220c) + #2 WorkerThread src/libplatform/default-worker-threads-task-runner.cc:66:3 (d8+0x1e580ac) (BuildId: 2d1896fcafe8220c) + #3 make_unique buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h:670:30 (d8+0x1e580ac) + #4 v8::platform::DefaultWorkerThreadsTaskRunner::DefaultWorkerThreadsTaskRunner(unsigned int, double (*)()) src/libplatform/default-worker-threads-task-runner.cc:16:28 (d8+0x1e580ac) + #5 __shared_ptr_emplace buildtools/third_party/libc++/trunk/include/__memory/shared_ptr.h:297:37 (d8+0x1e4e1b0) (BuildId: 2d1896fcafe8220c) + #6 allocate_shared, const int &, double (*)(), void> buildtools/third_party/libc++/trunk/include/__memory/shared_ptr.h:956:55 (d8+0x1e4e1b0) + #7 make_shared buildtools/third_party/libc++/trunk/include/__memory/shared_ptr.h:965:12 (d8+0x1e4e1b0) + #8 EnsureBackgroundTaskRunnerInitialized src/libplatform/default-platform.cc:132:7 (d8+0x1e4e1b0) + #9 v8::platform::DefaultPlatform::DefaultPlatform(int, v8::platform::IdleTaskSupport, std::Cr::unique_ptr>) src/libplatform/default-platform.cc:108:5 (d8+0x1e4e1b0) + #10 make_unique > > buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h:670:30 (d8+0x1e4d839) (BuildId: 2d1896fcafe8220c) + #11 v8::platform::NewDefaultPlatform(int, v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, std::Cr::unique_ptr>) src/libplatform/default-platform.cc:53:19 (d8+0x1e4d839) + #12 v8::Shell::Main(int, char**) src/d8/d8.cc:5691:16 (d8+0x58e251) (BuildId: 2d1896fcafe8220c) + #13 main src/d8/d8.cc:5976:43 (d8+0x58f4ee) (BuildId: 2d1896fcafe8220c) + +SUMMARY: ThreadSanitizer: data race src/base/flags.h:47:11 in operator|= +================== +ThreadSanitizer: reported 1 warnings diff --git a/tools/testrunner/testproc/stack_utils/testdata/data_race_2.expected.json b/tools/testrunner/testproc/stack_utils/testdata/data_race_2.expected.json new file mode 100644 index 0000000000..dc4e945728 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/data_race_2.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Data race\nWRITE 8", + "crash_state": "NULL" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/data_race_2.txt b/tools/testrunner/testproc/stack_utils/testdata/data_race_2.txt new file mode 100644 index 0000000000..c6993d2cdd --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/data_race_2.txt @@ -0,0 +1,118 @@ +================== +WARNING: ThreadSanitizer: data race (pid=10132) + Write of size 8 at 0x7e8d00440248 by thread T7 (mutexes: write M0): + #0 memset sanitizer_common/sanitizer_common_interceptors.inc:799:3 (d8+0x49d4ad) (BuildId: c849b9596314cb5d) + #1 ClearCellRangeRelaxed src/heap/marking.h:205:16 (d8+0x94d685) (BuildId: c849b9596314cb5d) + #2 Clear src/heap/marking.h:228:3 (d8+0x94d685) + #3 ClearMarkBitsAndHandleLivenessStatistics src/heap/sweeper.cc:303:33 (d8+0x94d685) + #4 v8::internal::Sweeper::RawSweep(v8::internal::Page*, v8::internal::Sweeper::FreeListRebuildingMode, v8::internal::FreeSpaceTreatmentMode, v8::internal::Sweeper::FreeSpaceMayContainInvalidatedSlots, v8::base::LockGuard const&) src/heap/sweeper.cc:412:3 (d8+0x94d685) + #5 v8::internal::Sweeper::ParallelSweepPage(v8::internal::Page*, v8::internal::AllocationSpace, v8::internal::Sweeper::FreeSpaceMayContainInvalidatedSlots) src/heap/sweeper.cc:494:17 (d8+0x94d9e6) (BuildId: c849b9596314cb5d) + #6 ConcurrentSweepSpace src/heap/sweeper.cc:437:5 (d8+0x95056a) (BuildId: c849b9596314cb5d) + #7 v8::internal::Sweeper::SweeperJob::RunImpl(v8::JobDelegate*) src/heap/sweeper.cc:117:22 (d8+0x95056a) + #8 v8::internal::Sweeper::SweeperJob::Run(v8::JobDelegate*) src/heap/sweeper.cc (d8+0x950295) (BuildId: c849b9596314cb5d) + #9 v8::DelayedTasksPlatform::DelayedJob::Run(v8::JobDelegate*) src/d8/d8-platforms.cc:297:18 (d8+0x51a6a8) (BuildId: c849b9596314cb5d) + #10 v8::platform::DefaultJobWorker::Run() src/libplatform/default-job.h:147:18 (d8+0x1a7bec8) (BuildId: c849b9596314cb5d) + #11 v8::platform::DefaultWorkerThreadsTaskRunner::WorkerThread::Run() src/libplatform/default-worker-threads-task-runner.cc:73:11 (d8+0x1a836f0) (BuildId: c849b9596314cb5d) + #12 NotifyStartedAndRun src/base/platform/platform.h:560:5 (d8+0x1a77162) (BuildId: c849b9596314cb5d) + #13 v8::base::ThreadEntry(void*) src/base/platform/platform-posix.cc:1051:11 (d8+0x1a77162) + + Previous atomic read of size 4 at 0x7e8d00440248 by thread T3: + #0 __cxx_atomic_load buildtools/third_party/libc++/trunk/include/atomic:1000:12 (d8+0x7e5423) (BuildId: c849b9596314cb5d) + #1 load buildtools/third_party/libc++/trunk/include/atomic:1611:17 (d8+0x7e5423) + #2 atomic_load_explicit buildtools/third_party/libc++/trunk/include/atomic:1967:17 (d8+0x7e5423) + #3 Acquire_Load src/base/atomicops.h:240:10 (d8+0x7e5423) + #4 Acquire_Load src/base/atomic-utils.h:73:9 (d8+0x7e5423) + #5 Get src/heap/marking.h:78:11 (d8+0x7e5423) + #6 IsBlackOrGrey src/heap/marking.h:398:21 (d8+0x7e5423) + #7 IsBlackOrGrey src/heap/marking-visitor.h:81:12 (d8+0x7e5423) + #8 void v8::internal::MarkingVisitorBase::ProcessWeakHeapObject(v8::internal::HeapObject, v8::internal::CompressedHeapObjectSlot, v8::internal::HeapObject) src/heap/marking-visitor-inl.h:58:44 (d8+0x7e5423) + #9 VisitPointersImpl src/heap/marking-visitor-inl.h:90:7 (d8+0x7df885) (BuildId: c849b9596314cb5d) + #10 VisitPointers src/heap/marking-visitor.h:199:5 (d8+0x7df885) + #11 IterateMaybeWeakPointers src/objects/objects-body-descriptors-inl.h:139:6 (d8+0x7df885) + #12 IterateBody src/objects/objects-body-descriptors.h:176:5 (d8+0x7df885) + #13 VisitFeedbackVector src/heap/objects-visiting-inl.h:118:1 (d8+0x7df885) + #14 Visit src/heap/objects-visiting-inl.h:65:5 (d8+0x7df885) + #15 v8::internal::ConcurrentMarking::Run(v8::JobDelegate*, v8::base::EnumSet, unsigned int, bool) src/heap/concurrent-marking.cc:531:41 (d8+0x7df885) + #16 v8::internal::ConcurrentMarking::JobTask::Run(v8::JobDelegate*) src/heap/concurrent-marking.cc:420:28 (d8+0x7eb659) (BuildId: c849b9596314cb5d) + #17 v8::DelayedTasksPlatform::DelayedJob::Run(v8::JobDelegate*) src/d8/d8-platforms.cc:297:18 (d8+0x51a6a8) (BuildId: c849b9596314cb5d) + #18 v8::platform::DefaultJobWorker::Run() src/libplatform/default-job.h:147:18 (d8+0x1a7bec8) (BuildId: c849b9596314cb5d) + #19 v8::platform::DefaultWorkerThreadsTaskRunner::WorkerThread::Run() src/libplatform/default-worker-threads-task-runner.cc:73:11 (d8+0x1a836f0) (BuildId: c849b9596314cb5d) + #20 NotifyStartedAndRun src/base/platform/platform.h:560:5 (d8+0x1a77162) (BuildId: c849b9596314cb5d) + #21 v8::base::ThreadEntry(void*) src/base/platform/platform-posix.cc:1051:11 (d8+0x1a77162) + + As if synchronized via sleep: + #0 usleep /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:358:3 (d8+0x490b4a) (BuildId: c849b9596314cb5d) + #1 v8::base::OS::Sleep(v8::base::TimeDelta) src/base/platform/platform-posix.cc:615:3 (d8+0x1a76295) (BuildId: c849b9596314cb5d) + #2 v8::DelayedTasksPlatform::DelayedJob::Run(v8::JobDelegate*) src/d8/d8-platforms.cc:296:7 (d8+0x51a687) (BuildId: c849b9596314cb5d) + #3 v8::platform::DefaultJobWorker::Run() src/libplatform/default-job.h:147:18 (d8+0x1a7bec8) (BuildId: c849b9596314cb5d) + #4 v8::platform::DefaultWorkerThreadsTaskRunner::WorkerThread::Run() src/libplatform/default-worker-threads-task-runner.cc:73:11 (d8+0x1a836f0) (BuildId: c849b9596314cb5d) + #5 NotifyStartedAndRun src/base/platform/platform.h:560:5 (d8+0x1a77162) (BuildId: c849b9596314cb5d) + #6 v8::base::ThreadEntry(void*) src/base/platform/platform-posix.cc:1051:11 (d8+0x1a77162) + + Mutex M0 (0x7b0c000091e0) created at: + #0 pthread_mutex_init /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1316:3 (d8+0x494d4f) (BuildId: c849b9596314cb5d) + #1 InitializeNativeHandle src/base/platform/mutex.cc:95:12 (d8+0x1a71ecb) (BuildId: c849b9596314cb5d) + #2 v8::base::Mutex::Mutex() src/base/platform/mutex.cc:148:3 (d8+0x1a71ecb) + #3 v8::internal::MemoryChunk::Initialize(v8::internal::BasicMemoryChunk*, v8::internal::Heap*, v8::internal::Executability) src/heap/memory-chunk.cc:149:23 (d8+0x8fa1dd) (BuildId: c849b9596314cb5d) + #4 AllocateChunk src/heap/memory-allocator.cc:409:7 (d8+0x8f9094) (BuildId: c849b9596314cb5d) + #5 v8::internal::MemoryAllocator::AllocatePage(v8::internal::MemoryAllocator::AllocationMode, unsigned long, v8::internal::Space*, v8::internal::Executability) src/heap/memory-allocator.cc:562:13 (d8+0x8f9094) + #6 AllocatePage src/heap/paged-spaces.cc:322:38 (d8+0x9130dd) (BuildId: c849b9596314cb5d) + #7 v8::internal::PagedSpace::ExpandBackground(unsigned long) src/heap/paged-spaces.cc:338:16 (d8+0x9130dd) + #8 v8::internal::PagedSpace::RawRefillLabBackground(v8::internal::LocalHeap*, unsigned long, unsigned long, v8::internal::AllocationAlignment, v8::internal::AllocationOrigin) src/heap/paged-spaces.cc:631:14 (d8+0x914467) (BuildId: c849b9596314cb5d) + #9 v8::internal::ConcurrentAllocator::EnsureLab(v8::internal::AllocationOrigin) src/heap/concurrent-allocator.cc:135:25 (d8+0x7dc06c) (BuildId: c849b9596314cb5d) + #10 v8::internal::ConcurrentAllocator::AllocateInLabSlow(int, v8::internal::AllocationAlignment, v8::internal::AllocationOrigin) src/heap/concurrent-allocator.cc:124:8 (d8+0x7dbf7b) (BuildId: c849b9596314cb5d) + #11 AllocateInLab src/heap/concurrent-allocator-inl.h:41:16 (d8+0x82d0b1) (BuildId: c849b9596314cb5d) + #12 AllocateRaw src/heap/concurrent-allocator-inl.h:34:10 (d8+0x82d0b1) + #13 AllocateRaw src/heap/heap-allocator-inl.h:122:47 (d8+0x82d0b1) + #14 AllocateRaw src/heap/heap-allocator-inl.h:184:14 (d8+0x82d0b1) + #15 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) src/heap/heap-allocator.cc:75:29 (d8+0x82d0b1) + #16 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) src/heap/heap-allocator.cc:100:7 (d8+0x82e234) (BuildId: c849b9596314cb5d) + #17 AllocateRawWith src/heap/heap-allocator-inl.h:237:16 (d8+0x808920) (BuildId: c849b9596314cb5d) + #18 v8::internal::Factory::NewMap(v8::internal::InstanceType, int, v8::internal::ElementsKind, int, v8::internal::AllocationType) src/heap/factory.cc:1848:36 (d8+0x808920) + #19 v8::internal::Builtin_Impl_SharedStructTypeConstructor(v8::internal::BuiltinArguments, v8::internal::Isolate*) src/builtins/builtins-struct.cc:84:39 (d8+0x65fa26) (BuildId: c849b9596314cb5d) + #20 v8::internal::Builtin_SharedStructTypeConstructor(int, unsigned long*, v8::internal::Isolate*) src/builtins/builtins-struct.cc:20:1 (d8+0x65f061) (BuildId: c849b9596314cb5d) + #21 (0x560ebfe66ef8) + #22 v8::internal::Execution::CallScript(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle) src/execution/execution.cc:531:10 (d8+0x77252c) (BuildId: c849b9596314cb5d) + #23 v8::Script::Run(v8::Local, v8::Local) src/api/api.cc:2105:7 (d8+0x561590) (BuildId: c849b9596314cb5d) + #24 v8::Script::Run(v8::Local) src/api/api.cc:2048:10 (d8+0x560d20) (BuildId: c849b9596314cb5d) + #25 v8::Shell::ExecuteString(v8::Isolate*, v8::Local, v8::Local, v8::Shell::PrintResult, v8::Shell::ReportExceptions, v8::Shell::ProcessMessageQueue) src/d8/d8.cc:773:28 (d8+0x5211d0) (BuildId: c849b9596314cb5d) + #26 v8::SourceGroup::Execute(v8::Isolate*) src/d8/d8.cc:3990:10 (d8+0x53659a) (BuildId: c849b9596314cb5d) + #27 v8::Shell::RunMain(v8::Isolate*, bool) src/d8/d8.cc:4656:39 (d8+0x53a188) (BuildId: c849b9596314cb5d) + #28 v8::Shell::Main(int, char**) src/d8/d8.cc:5473:18 (d8+0x53cd5b) (BuildId: c849b9596314cb5d) + #29 main src/d8/d8.cc:5553:43 (d8+0x53cf4e) (BuildId: c849b9596314cb5d) + + Thread T7 'V8 DefaultWorke' (tid=10149, running) created by main thread at: + #0 pthread_create /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1022:3 (d8+0x49356d) (BuildId: c849b9596314cb5d) + #1 v8::base::Thread::Start() src/base/platform/platform-posix.cc:1083:14 (d8+0x1a77076) (BuildId: c849b9596314cb5d) + #2 WorkerThread src/libplatform/default-worker-threads-task-runner.cc:66:3 (d8+0x1a830f2) (BuildId: c849b9596314cb5d) + #3 make_unique buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h:725:32 (d8+0x1a830f2) + #4 v8::platform::DefaultWorkerThreadsTaskRunner::DefaultWorkerThreadsTaskRunner(unsigned int, double (*)()) src/libplatform/default-worker-threads-task-runner.cc:16:28 (d8+0x1a830f2) + #5 __shared_ptr_emplace buildtools/third_party/libc++/trunk/include/__memory/shared_ptr.h:293:37 (d8+0x1a7890d) (BuildId: c849b9596314cb5d) + #6 allocate_shared, const int &, double (*)(), void> buildtools/third_party/libc++/trunk/include/__memory/shared_ptr.h:1101:55 (d8+0x1a7890d) + #7 make_shared buildtools/third_party/libc++/trunk/include/__memory/shared_ptr.h:1110:12 (d8+0x1a7890d) + #8 EnsureBackgroundTaskRunnerInitialized src/libplatform/default-platform.cc:133:7 (d8+0x1a7890d) + #9 v8::platform::DefaultPlatform::DefaultPlatform(int, v8::platform::IdleTaskSupport, std::__1::unique_ptr >) src/libplatform/default-platform.cc:109:5 (d8+0x1a7890d) + #10 make_unique > > buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h:725:32 (d8+0x1a78029) (BuildId: c849b9596314cb5d) + #11 v8::platform::NewDefaultPlatform(int, v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, std::__1::unique_ptr >) src/libplatform/default-platform.cc:54:19 (d8+0x1a78029) + #12 v8::Shell::Main(int, char**) src/d8/d8.cc:5270:16 (d8+0x53b887) (BuildId: c849b9596314cb5d) + #13 main src/d8/d8.cc:5553:43 (d8+0x53cf4e) (BuildId: c849b9596314cb5d) + + Thread T3 'V8 DefaultWorke' (tid=10144, running) created by main thread at: + #0 pthread_create /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1022:3 (d8+0x49356d) (BuildId: c849b9596314cb5d) + #1 v8::base::Thread::Start() src/base/platform/platform-posix.cc:1083:14 (d8+0x1a77076) (BuildId: c849b9596314cb5d) + #2 WorkerThread src/libplatform/default-worker-threads-task-runner.cc:66:3 (d8+0x1a830f2) (BuildId: c849b9596314cb5d) + #3 make_unique buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h:725:32 (d8+0x1a830f2) + #4 v8::platform::DefaultWorkerThreadsTaskRunner::DefaultWorkerThreadsTaskRunner(unsigned int, double (*)()) src/libplatform/default-worker-threads-task-runner.cc:16:28 (d8+0x1a830f2) + #5 __shared_ptr_emplace buildtools/third_party/libc++/trunk/include/__memory/shared_ptr.h:293:37 (d8+0x1a7890d) (BuildId: c849b9596314cb5d) + #6 allocate_shared, const int &, double (*)(), void> buildtools/third_party/libc++/trunk/include/__memory/shared_ptr.h:1101:55 (d8+0x1a7890d) + #7 make_shared buildtools/third_party/libc++/trunk/include/__memory/shared_ptr.h:1110:12 (d8+0x1a7890d) + #8 EnsureBackgroundTaskRunnerInitialized src/libplatform/default-platform.cc:133:7 (d8+0x1a7890d) + #9 v8::platform::DefaultPlatform::DefaultPlatform(int, v8::platform::IdleTaskSupport, std::__1::unique_ptr >) src/libplatform/default-platform.cc:109:5 (d8+0x1a7890d) + #10 make_unique > > buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h:725:32 (d8+0x1a78029) (BuildId: c849b9596314cb5d) + #11 v8::platform::NewDefaultPlatform(int, v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, std::__1::unique_ptr >) src/libplatform/default-platform.cc:54:19 (d8+0x1a78029) + #12 v8::Shell::Main(int, char**) src/d8/d8.cc:5270:16 (d8+0x53b887) (BuildId: c849b9596314cb5d) + #13 main src/d8/d8.cc:5553:43 (d8+0x53cf4e) (BuildId: c849b9596314cb5d) + +SUMMARY: ThreadSanitizer: data race src/heap/marking.h:205:16 in ClearCellRangeRelaxed +================== +ThreadSanitizer: reported 1 warnings diff --git a/tools/testrunner/testproc/stack_utils/testdata/data_race_clusterfuzz.expected.json b/tools/testrunner/testproc/stack_utils/testdata/data_race_clusterfuzz.expected.json new file mode 100644 index 0000000000..b3b0203830 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/data_race_clusterfuzz.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Data race\nREAD 8", + "crash_state": "v8::internal::compiler::JSObjectRef::GetOwnConstantElementFromHeap\nv8::internal::compiler::JSObjectRef::GetOwnConstantElement\nv8::internal::compiler::JSNativeContextSpecialization::ReduceElementLoadFromHeap" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/data_race_clusterfuzz.txt b/tools/testrunner/testproc/stack_utils/testdata/data_race_clusterfuzz.txt new file mode 100644 index 0000000000..b72ef85bbd --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/data_race_clusterfuzz.txt @@ -0,0 +1,50 @@ +WARNING: ThreadSanitizer: data race (pid=3187405) + Read of size 8 at 0x7ea200056b80 by thread T1: + #0 0x55ad577064dc in v8::internal::compiler::JSObjectRef::GetOwnConstantElementFromHeap(v8::internal::FixedArrayBase, v8::internal::ElementsKind, unsigned int) const src/base/memory.h:34:3 + #1 0x55ad577062aa in v8::internal::compiler::JSObjectRef::GetOwnConstantElement(v8::internal::compiler::FixedArrayBaseRef const&, unsigned int, v8::internal::compiler::CompilationDependencies*) const src/compiler/heap-refs.cc:1815:42 + #2 0x55ad577c4ff7 in v8::internal::compiler::JSNativeContextSpecialization::ReduceElementLoadFromHeapConstant(v8::internal::compiler::Node*, v8::internal::compiler::Node*, v8::internal::compiler::AccessMode, v8::internal::KeyedAccessLoadMode) src/compiler/js-native-context-specialization.cc:2325:32 + #3 0x55ad577c2c8f in v8::internal::compiler::JSNativeContextSpecialization::ReduceElementAccess(v8::internal::compiler::Node*, v8::internal::compiler::Node*, v8::internal::compiler::Node*, v8::internal::compiler::ElementAccessFeedback const&) src/compiler/js-native-context-specialization.cc:2094:27 + #4 0x55ad577c19f7 in v8::internal::compiler::JSNativeContextSpecialization::ReducePropertyAccess(v8::internal::compiler::Node*, v8::internal::compiler::Node*, v8::base::Optional, v8::internal::compiler::Node*, v8::internal::compiler::FeedbackSource const&, v8::internal::compiler::AccessMode) src/compiler/js-native-context-specialization.cc:2413:14 + #5 0x55ad577b6099 in v8::internal::compiler::JSNativeContextSpecialization::ReduceJSLoadProperty(v8::internal::compiler::Node*) src/compiler/js-native-context-specialization.cc:2564:10 + #6 0x55ad577afc8f in v8::internal::compiler::JSNativeContextSpecialization::Reduce(v8::internal::compiler::Node*) src/compiler/js-native-context-specialization.cc:108:14 + #7 0x55ad576d605a in v8::internal::compiler::GraphReducer::Reduce(v8::internal::compiler::Node*) src/compiler/graph-reducer.cc:34:25 + #8 0x55ad576d59f4 in v8::internal::compiler::GraphReducer::ReduceTop() src/compiler/graph-reducer.cc:178:25 + #9 0x55ad576d5209 in v8::internal::compiler::GraphReducer::ReduceNode(v8::internal::compiler::Node*) src/compiler/graph-reducer.cc:75:7 + #10 0x55ad576d5f35 in v8::internal::compiler::GraphReducer::ReduceGraph() src/compiler/graph-reducer.cc:97:36 + #11 0x55ad57887506 in v8::internal::compiler::InliningPhase::Run(v8::internal::compiler::PipelineData*, v8::internal::Zone*) src/compiler/pipeline.cc:1422:19 + #12 0x55ad578763c9 in auto v8::internal::compiler::PipelineImpl::Run() src/compiler/pipeline.cc:1319:16 + #13 0x55ad57872135 in v8::internal::compiler::PipelineImpl::CreateGraph() src/compiler/pipeline.cc:2847:3 + #14 0x55ad57871f32 in v8::internal::compiler::PipelineCompilationJob::ExecuteJobImpl(v8::internal::RuntimeCallStats*, v8::internal::LocalIsolate*) src/compiler/pipeline.cc:1247:18 + #15 0x55ad565a9830 in v8::internal::OptimizedCompilationJob::ExecuteJob(v8::internal::RuntimeCallStats*, v8::internal::LocalIsolate*) src/codegen/compiler.cc:494:22 + #16 0x55ad565ef91e in v8::internal::OptimizingCompileDispatcher::CompileNext(v8::internal::TurbofanCompilationJob*, v8::internal::LocalIsolate*) src/compiler-dispatcher/optimizing-compile-dispatcher.cc:105:12 + #17 0x55ad565f2555 in v8::internal::OptimizingCompileDispatcher::CompileTask::RunInternal() src/compiler-dispatcher/optimizing-compile-dispatcher.cc:67:20 + #18 0x55ad5640b898 in non-virtual thunk to v8::internal::CancelableTask::Run() src/tasks/cancelable-task.h:155:7 + #19 0x55ad57cc46b1 in v8::platform::DefaultWorkerThreadsTaskRunner::WorkerThread::Run() src/libplatform/default-worker-threads-task-runner.cc:73:11 + #20 0x55ad57cb7c23 in v8::base::ThreadEntry(void*) src/base/platform/platform.h:596:5 + Previous write of size 8 at 0x7ea200056b80 by main thread: + #0 0x55ad56a49f14 in v8::internal::(anonymous namespace)::DictionaryElementsAccessor::SetLengthImpl(v8::internal::Isolate*, v8::internal::Handle, unsigned int, v8::internal::Handle) src/base/memory.h:41:3 + #1 0x55ad56a675ea in v8::internal::(anonymous namespace)::ElementsAccessorBase >::SetLength(v8::internal::Handle, unsigned int) src/objects/elements.cc:758:12 + #2 0x55ad56c5f9c0 in v8::internal::JSArray::SetLength(v8::internal::Handle, unsigned int) src/objects/objects.cc:5237:40 + #3 0x55ad564a6616 in v8::internal::Accessors::ArrayLengthSetter(v8::Local, v8::Local, v8::PropertyCallbackInfo const&) src/builtins/accessors.cc:202:7 + #4 0x55ad568e961b in v8::internal::PropertyCallbackArguments::CallAccessorSetter(v8::internal::Handle, v8::internal::Handle, v8::internal::Handle) src/api/api-arguments-inl.h:332:3 + #5 0x55ad568e39df in v8::internal::Runtime_StoreCallbackProperty(int, unsigned long*, v8::internal::Isolate*) src/ic/ic.cc:3245:13 + #6 0x55acdfe69bb8 in Builtins_AsyncFromSyncIteratorPrototypeThrow (/mnt/scratch0/clusterfuzz/bot/builds/v8-tsan_linux-release_8681dd6e7b8d9ebe281ad96b26057d51e550c14e/revisions/d8-tsan-linux-release-v8-component-83502/d8+0x1c30bb7) + #7 0x55ad5668cf86 in v8::internal::Execution::CallScript(v8::internal::Isolate*, v8::internal::Handle, v8::internal::Handle, v8::internal::Handle) src/execution/execution.cc:538:10 + #8 0x55ad5642808f in v8::Script::Run(v8::Local, v8::Local) src/api/api.cc:2231:7 + #9 0x55ad564277c1 in v8::Script::Run(v8::Local) src/api/api.cc:2158:10 + #10 0x55ad563e63cc in v8::Shell::ExecuteString(v8::Isolate*, v8::Local, v8::Local, v8::Shell::PrintResult, v8::Shell::ReportExceptions, v8::Shell::ProcessMessageQueue) src/d8/d8.cc:879:28 + #11 0x55ad563fe621 in v8::SourceGroup::Execute(v8::Isolate*) src/d8/d8.cc:4379:10 + #12 0x55ad56402488 in v8::Shell::RunMain(v8::Isolate*, bool) src/d8/d8.cc:5107:39 + #13 0x55ad56404fe1 in v8::Shell::Main(int, char**) src/d8/d8.cc:5886:18 + #14 0x55ad564054ef in main src/d8/d8.cc:5976:43 + Thread T1 'V8 DefaultWorke' (tid=3187415, running) created by main thread at: + #0 0x55ad56353ffc in pthread_create third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1022:3 + #1 0x55ad57cb7b37 in v8::base::Thread::Start() src/base/platform/platform-posix.cc:1144:14 + #2 0x55ad57cc40ad in v8::platform::DefaultWorkerThreadsTaskRunner::DefaultWorkerThreadsTaskRunner(unsigned int, double (*)()) src/libplatform/default-worker-threads-task-runner.cc:66:3 + #3 0x55ad57cba1b1 in v8::platform::DefaultPlatform::DefaultPlatform(int, v8::platform::IdleTaskSupport, std::Cr::unique_ptr >) buildtools/third_party/libc++/trunk/include/__memory/shared_ptr.h:297:37 + #4 0x55ad57cb983a in v8::platform::NewDefaultPlatform(int, v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, std::Cr::unique_ptr >) buildtools/third_party/libc++/trunk/include/__memory/unique_ptr.h:670:30 + #5 0x55ad56404252 in v8::Shell::Main(int, char**) src/d8/d8.cc:5691:16 + #6 0x55ad564054ef in main src/d8/d8.cc:5976:43 +SUMMARY: ThreadSanitizer: data race src/base/memory.h:34:3 in v8::internal::compiler::JSObjectRef::GetOwnConstantElementFromHeap(v8::internal::FixedArrayBase, v8::internal::ElementsKind, unsigned int) const +================== +ThreadSanitizer: reported 1 warnings \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/deserialization.expected.json b/tools/testrunner/testproc/stack_utils/testdata/deserialization.expected.json new file mode 100644 index 0000000000..861f3ca23d --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/deserialization.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "", + "crash_state": "" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/deserialization.txt b/tools/testrunner/testproc/stack_utils/testdata/deserialization.txt new file mode 100644 index 0000000000..767adce4c3 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/deserialization.txt @@ -0,0 +1,43 @@ + +<--- Last few GCs ---> + + +<--- JS stacktrace ---> + + +# +# Fatal javascript OOM in GC during deserialization +# + +Received signal 6 + +==== C stack trace =============================== + + [0x559eb24c1167] + [0x7f27da846980] + [0x7f27d9ecbfb7] + [0x7f27d9ecd921] + [0x559eb24bec92] + [0x559eb192b71f] + [0x559eb192b685] + [0x559eb1abd785] + [0x559eb1abc125] + [0x559eb1ac6bfb] + [0x559eb1ac6c91] + [0x559eb1e5f0c8] + [0x559eb1e604a0] + [0x559eb1e5f99e] + [0x559eb1ac53c8] + [0x559eb1e6dbf8] + [0x559eb1a5eb21] + [0x559eb1a5ef79] + [0x559eb1e6b9a9] + [0x559eb194c069] + [0x559eb194c23d] + [0x559eb1919e3a] + [0x559eb1919da8] + [0x559eb24bf710] + [0x7f27da83b6db] + [0x7f27d9fae71f] +[end of stack trace] +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/fata_js_oom.expected.json b/tools/testrunner/testproc/stack_utils/testdata/fata_js_oom.expected.json new file mode 100644 index 0000000000..861f3ca23d --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/fata_js_oom.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "", + "crash_state": "" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/fata_js_oom.txt b/tools/testrunner/testproc/stack_utils/testdata/fata_js_oom.txt new file mode 100644 index 0000000000..e2e57c1b8e --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/fata_js_oom.txt @@ -0,0 +1,48 @@ + +<--- Last few GCs ---> + + +<--- JS stacktrace ---> + + +# +# Fatal javascript OOM in GC during deserialization +# + +Received signal 6 + +==== C stack trace =============================== + + [0x7f31c97776b7] + [0x7f31c631b980] + [0x7f31c5bb8e87] + [0x7f31c5bba7f1] + [0x7f31c9775332] + [0x7f31c7c8daf5] + [0x7f31c7c8d97d] + [0x7f31c81a33a5] + [0x7f31c81a15ed] + [0x7f31c81914df] + [0x7f31c81915c1] + [0x7f31c8134c33] + [0x7f31c8adbc18] + [0x7f31c8ad7af1] + [0x7f31c8ada0d5] + [0x7f31c8ad7fdd] + [0x7f31c8adb0be] + [0x7f31c8ad9c46] + [0x7f31c81b4499] + [0x7f31c81adcc9] + [0x7f31c8b16d0e] + [0x7f31c809ed03] + [0x7f31c809fcb1] + [0x7f31c8b114b7] + [0x7f31c7d02526] + [0x7f31c7d02b2d] + [0x565117ee00ed] + [0x565117ee0008] + [0x7f31c9776470] + [0x7f31c63106db] + [0x7f31c5c9b61f] +[end of stack trace] +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/has_optimized_code.expected.json b/tools/testrunner/testproc/stack_utils/testdata/has_optimized_code.expected.json new file mode 100644 index 0000000000..6faae98ca7 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/has_optimized_code.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "DCHECK failure", + "crash_state": "!has_optimized_code() || optimized_code().marked_for_deoptimization() || (CodeKi" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/has_optimized_code.txt b/tools/testrunner/testproc/stack_utils/testdata/has_optimized_code.txt new file mode 100644 index 0000000000..9727783e07 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/has_optimized_code.txt @@ -0,0 +1,30 @@ + + +# +# Fatal error in ../../src/objects/feedback-vector.cc, line 396 +# Debug check failed: !has_optimized_code() || optimized_code().marked_for_deoptimization() || (CodeKindCanTierUp(optimized_code().kind()) && optimized_code().kind() < code.kind()) || v8_flags.stress_concurrent_inlining_attach_code. +# +# +# +#FailureMessage Object: 0x7fffe8420b90Received signal 6 + +==== C stack trace =============================== + + [0x7fdffc28c263] + [0x7fdffc28c1b1] + [0x7fdff8747980] + [0x7fdff7fe4e87] + [0x7fdff7fe67f1] + [0x7fdffc289de2] + [0x7fdffc26bbe0] + [0x7fdffc26b675] + [0x7fdffae468b2] + [0x7fdffa6c2f1b] + [0x7fdffa6c3517] + [0x7fdffb4f49b5] + [0x7fdffa8bc015] + [0x7fdffb2fa1e4] + [0x7fdffb2f9cd7] + [0x7fdf7f9c83ff] +[end of stack trace] +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/heap_limit.expected.json b/tools/testrunner/testproc/stack_utils/testdata/heap_limit.expected.json new file mode 100644 index 0000000000..861f3ca23d --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/heap_limit.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "", + "crash_state": "" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/heap_limit.txt b/tools/testrunner/testproc/stack_utils/testdata/heap_limit.txt new file mode 100644 index 0000000000..f1ab82a2e1 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/heap_limit.txt @@ -0,0 +1,33 @@ + +<--- Last few GCs ---> +nd[29661:0x563245f31e60] 3744 ms: Mark-sweep 94.8 (110.0) -> 92.7 (109.5) MB, 376.4 / 0.0 ms (+ 17.3 ms in 1 steps since start of marking, biggest step 17.3 ms, walltime since start of marking 460 ms) (average mu = 0.267, current mu = 0.191) background[29661:0x563245f31e60] 4198 ms: Mark-sweep 96.8 (113.0) -> 95.2 (111.7) MB, 377.4 / 0.0 ms (+ 0.0 ms in 0 steps since start of marking, biggest step 0.0 ms, walltime since start of marking 431 ms) (average mu = 0.221, current mu = 0.169) background a + +<--- JS stacktrace ---> + + +# +# Fatal javascript OOM in Reached heap limit +# + +Received signal 6 + +==== C stack trace =============================== + + [0x7ff0cca95ee7] + [0x7ff0c9876980] + [0x7ff0c9111fb7] + [0x7ff0c9113921] + [0x7ff0cca93c52] + [0x7ff0cb13fc25] + [0x7ff0cb13faad] + [0x7ff0cb5e77d5] + [0x7ff0cb5e5a93] + [0x7ff0cb5ea284] + [0x7ff0cb58ad35] + [0x7ff0cb5f9306] + [0x7ff0cb5f9595] + [0x7ff0cb58920a] + [0x7ff0cbdead26] + [0x7ff0cab572bf] +[end of stack trace] +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier.expected.json b/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier.expected.json new file mode 100644 index 0000000000..5bc889cc2b --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "DCHECK failure", + "crash_state": "is_main_thread_barrier_ in marking-barrier.cc" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier.txt b/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier.txt new file mode 100644 index 0000000000..08de978e46 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier.txt @@ -0,0 +1,30 @@ + + +# +# Fatal error in ../../src/heap/marking-barrier.cc, line 77 +# Debug check failed: is_main_thread_barrier_. +# +# +# +#FailureMessage Object: 0x7fbcb88255c0Received signal 6 + +==== C stack trace =============================== + + [0x7fbcc0a3a7f7] + [0x7fbcbd9c1980] + [0x7fbcbd25efb7] + [0x7fbcbd260921] + [0x7fbcc0a38932] + [0x7fbcc0a1dfa0] + [0x7fbcc0a1da15] + [0x7fbcbf65b64a] + [0x7fbcbfeb60df] + [0x7fbcbfec3389] + [0x7fbcbfec324c] + [0x7fbcbfea5c34] + [0x7fbcbfea7f18] + [0x7fbcc0a395a0] + [0x7fbcbd9b66db] + [0x7fbcbd34171f] +[end of stack trace] +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier_2.expected.json b/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier_2.expected.json new file mode 100644 index 0000000000..5bc889cc2b --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier_2.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "DCHECK failure", + "crash_state": "is_main_thread_barrier_ in marking-barrier.cc" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier_2.txt b/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier_2.txt new file mode 100644 index 0000000000..29012581e3 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/is_main_thread_barrier_2.txt @@ -0,0 +1,26 @@ + + +# +# Fatal error in ../../src/heap/marking-barrier.cc, line 77 +# Debug check failed: is_main_thread_barrier_. +# +# +# +#FailureMessage Object: 0x7fa0116815c0 +==== C stack trace =============================== + + /b/s/w/ir/out/build/libv8_libbase.so(v8::base::debug::StackTrace::StackTrace()+0x13) [0x7fa01988e8c3] + /b/s/w/ir/out/build/libv8_libplatform.so(+0x1bfed) [0x7fa01983efed] + /b/s/w/ir/out/build/libv8_libbase.so(V8_Fatal(char const*, int, char const*, ...)+0x153) [0x7fa019871fb3] + /b/s/w/ir/out/build/libv8_libbase.so(+0x24a35) [0x7fa019871a35] + /b/s/w/ir/out/build/libv8.so(v8::internal::MarkingBarrier::Write(v8::internal::DescriptorArray, int)+0xca) [0x7fa0184b52fa] + /b/s/w/ir/out/build/libv8.so(v8::internal::Deserializer::WeakenDescriptorArrays()+0x8f) [0x7fa018d1170f] + /b/s/w/ir/out/build/libv8.so(v8::internal::OffThreadObjectDeserializer::Deserialize(std::__Cr::vector, std::__Cr::allocator > >*)+0xc9) [0x7fa018d1e9b9] + /b/s/w/ir/out/build/libv8.so(v8::internal::OffThreadObjectDeserializer::DeserializeSharedFunctionInfo(v8::internal::LocalIsolate*, v8::internal::SerializedCodeData const*, std::__Cr::vector, std::__Cr::allocator > >*)+0x1ac) [0x7fa018d1e87c] + /b/s/w/ir/out/build/libv8.so(v8::internal::CodeSerializer::StartDeserializeOffThread(v8::internal::LocalIsolate*, v8::internal::AlignedCachedData*)+0x144) [0x7fa018d01264] + /b/s/w/ir/out/build/libv8.so(+0x2079548) [0x7fa018d03548] + /b/s/w/ir/out/build/libv8_libbase.so(+0x405c0) [0x7fa01988d5c0] + /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7fa0168116db] + /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7fa01619c71f] +Received signal 6 +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/js_func_ref.expected.json b/tools/testrunner/testproc/stack_utils/testdata/js_func_ref.expected.json new file mode 100644 index 0000000000..5d29bfb52d --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/js_func_ref.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "CHECK failure", + "crash_state": "JSFunctionRef construction failed" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/js_func_ref.txt b/tools/testrunner/testproc/stack_utils/testdata/js_func_ref.txt new file mode 100644 index 0000000000..3983b0638e --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/js_func_ref.txt @@ -0,0 +1,55 @@ + + +# +# Fatal error in , line 0 +# Check failed: JSFunctionRef construction failed. +# +# +# +#FailureMessage Object: 0x7fe2840bb790Received signal 6 + +==== C stack trace =============================== + + [0x560fb0a62e08] + [0x560fb1e5dbdc] + [0x560fb0a4be9c] + [0x560fb0a83a8c] + [0x7fe288cdf980] + [0x7fe28815cfb7] + [0x7fe28815e921] + [0x560fb0a4ae48] + [0x560fb1e5a0d7] + [0x560fb1e4dd5f] + [0x560fb19082b3] + [0x560fb19c1975] + [0x560fb1917895] + [0x560fb190b1b4] + [0x560fb1935a48] + [0x560fb1aab7de] + [0x560fb1aac3d2] + [0x560fb19f6cb0] + [0x560fb19ed1eb] + [0x560fb19e96f5] + [0x560fb19ed32e] + [0x560fb19e4111] + [0x560fb19def82] + [0x560fb18f6cee] + [0x560fb18f6348] + [0x560fb18f5b69] + [0x560fb18f6be5] + [0x560fb1aa51ed] + [0x560fb1a96dea] + [0x560fb1a9259d] + [0x560fb1a92825] + [0x560fb0bfc5d0] + [0x560fb0c3812e] + [0x560fb0c3b775] + [0x560fb0ae4046] + [0x560fb0abdbd2] + [0x560fb1e67121] + [0x560fb1e5afb3] + [0x560fb0a4526d] + [0x7fe288cd46db] + [0x7fe28823f71f] +[end of stack trace] +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/marking_state.expected.json b/tools/testrunner/testproc/stack_utils/testdata/marking_state.expected.json new file mode 100644 index 0000000000..cff36dc732 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/marking_state.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "CHECK failure", + "crash_state": "marking_state_->IsBlack(heap_object) in mark-compact.cc" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/marking_state.txt b/tools/testrunner/testproc/stack_utils/testdata/marking_state.txt new file mode 100644 index 0000000000..5acc40bfb3 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/marking_state.txt @@ -0,0 +1,37 @@ + + +# +# Fatal error in ../../src/heap/mark-compact.cc, line 285 +# Check failed: marking_state_->IsBlack(heap_object). +# +# +# +#FailureMessage Object: 0x7ffce64f0700 +==== C stack trace =============================== + + /b/s/w/ir/out/build/libv8_libbase.so(v8::base::debug::StackTrace::StackTrace()+0x13) [0x7f644a73e4b3] + /b/s/w/ir/out/build/libv8_libplatform.so(+0x1bc5d) [0x7f644a6e2c5d] + /b/s/w/ir/out/build/libv8_libbase.so(V8_Fatal(char const*, int, char const*, ...)+0x153) [0x7f644a71e653] + /b/s/w/ir/out/build/libv8.so(+0x1b80d25) [0x7f6449080d25] + /b/s/w/ir/out/build/libv8.so(v8::internal::CommonFrame::IterateExpressions(v8::internal::RootVisitor*) const+0x144) [0x7f6448eed414] + /b/s/w/ir/out/build/libv8.so(v8::internal::JavaScriptFrame::Iterate(v8::internal::RootVisitor*) const+0x16) [0x7f6448efa386] + /b/s/w/ir/out/build/libv8.so(v8::internal::Isolate::Iterate(v8::internal::RootVisitor*, v8::internal::ThreadLocalTop*)+0x249) [0x7f6448f072c9] + /b/s/w/ir/out/build/libv8.so(v8::internal::Heap::IterateRoots(v8::internal::RootVisitor*, v8::base::EnumSet)+0x175) [0x7f6449021935] + /b/s/w/ir/out/build/libv8.so(v8::internal::Heap::IterateRootsIncludingClients(v8::internal::RootVisitor*, v8::base::EnumSet)+0x42) [0x7f6449028362] + /b/s/w/ir/out/build/libv8.so(+0x1b64e35) [0x7f6449064e35] + /b/s/w/ir/out/build/libv8.so(v8::internal::MarkCompactCollector::VerifyMarking()+0xaf) [0x7f6449061dbf] + /b/s/w/ir/out/build/libv8.so(v8::internal::MarkCompactCollector::CollectGarbage()+0x27) [0x7f644905f487] + /b/s/w/ir/out/build/libv8.so(v8::internal::Heap::MarkCompact()+0x2a1) [0x7f644901abb1] + /b/s/w/ir/out/build/libv8.so(v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*, v8::GCCallbackFlags)+0x5b9) [0x7f6449017949] + /b/s/w/ir/out/build/libv8.so(v8::internal::Heap::PerformSharedGarbageCollection(v8::internal::Isolate*, v8::internal::GarbageCollectionReason)+0x1a2) [0x7f644901c552] + /b/s/w/ir/out/build/libv8.so(v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment)+0x49) [0x7f64490064e9] + /b/s/w/ir/out/build/libv8.so(v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment)+0x21) [0x7f6449006621] + /b/s/w/ir/out/build/libv8.so(v8::internal::HeapObject v8::internal::HeapAllocator::AllocateRawWith<(v8::internal::HeapAllocator::AllocationRetryMode)1>(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment)+0x73) [0x7f6448fb3fe3] + /b/s/w/ir/out/build/libv8.so(v8::internal::FactoryBase::AllocateRawArray(int, v8::internal::AllocationType)+0x1d) [0x7f6448f9d3bd] + /b/s/w/ir/out/build/libv8.so(v8::internal::FactoryBase::NewFixedArrayWithFiller(v8::internal::Handle, int, v8::internal::Handle, v8::internal::AllocationType)+0x40) [0x7f6448f9c720] + /b/s/w/ir/out/build/libv8.so(v8::internal::FactoryBase::NewFixedArray(int, v8::internal::AllocationType)+0x75) [0x7f6448f9c665] + /b/s/w/ir/out/build/libv8.so(+0x178c16f) [0x7f6448c8c16f] + /b/s/w/ir/out/build/libv8.so(v8::internal::Builtin_SharedArrayConstructor(int, unsigned long*, v8::internal::Isolate*)+0xa4) [0x7f6448c8bbe4] + [0x7f63df9cf67f] +Received signal 6 +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/maybe_is_cleared.expected.json b/tools/testrunner/testproc/stack_utils/testdata/maybe_is_cleared.expected.json new file mode 100644 index 0000000000..267cf60619 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/maybe_is_cleared.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "CHECK failure", + "crash_state": "!maybe.IsCleared() in code-inl.h" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/maybe_is_cleared.txt b/tools/testrunner/testproc/stack_utils/testdata/maybe_is_cleared.txt new file mode 100644 index 0000000000..550b5f4fee --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/maybe_is_cleared.txt @@ -0,0 +1,21 @@ + + +# +# Fatal error in ../../src/objects/code-inl.h, line 1210 +# Check failed: !maybe.IsCleared(). +# +# +# +#FailureMessage Object: 0x7ffc7bce3850 +==== C stack trace =============================== + + /b/s/w/ir/out/build/libv8_libbase.so(v8::base::debug::StackTrace::StackTrace()+0x13) [0x7f943d292143] + /b/s/w/ir/out/build/libv8_libplatform.so(+0x1c1bd) [0x7f943d2421bd] + /b/s/w/ir/out/build/libv8_libbase.so(V8_Fatal(char const*, int, char const*, ...)+0x153) [0x7f943d2758b3] + /b/s/w/ir/out/build/libv8.so(v8::internal::DeoptimizationLiteralArray::get(int) const+0xcd) [0x7f943bbea88d] + /b/s/w/ir/out/build/libv8.so(v8::internal::TranslatedState::CreateNextTranslatedValue(int, v8::internal::TranslationArrayIterator*, v8::internal::DeoptimizationLiteralArray, unsigned long, v8::internal::RegisterValues*, _IO_FILE*)+0x7b7) [0x7f943bbee387] + /b/s/w/ir/out/build/libv8.so(v8::internal::TranslatedState::Init(v8::internal::Isolate*, unsigned long, unsigned long, v8::internal::TranslationArrayIterator*, v8::internal::DeoptimizationLiteralArray, v8::internal::RegisterValues*, _IO_FILE*, int, int)+0x41f) [0x7f943bbefe5f] + /b/s/w/ir/out/build/libv8.so(v8::internal::Deoptimizer::DoComputeOutputFrames()+0x8ab) [0x7f943bbde04b] + [0xd3007600544] +Received signal 6 +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/missing_deoptimization.expected.json b/tools/testrunner/testproc/stack_utils/testdata/missing_deoptimization.expected.json new file mode 100644 index 0000000000..1fa11c9a13 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/missing_deoptimization.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Fatal error", + "crash_state": "Missing deoptimization information for OptimizedFrame::Summarize" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/missing_deoptimization.txt b/tools/testrunner/testproc/stack_utils/testdata/missing_deoptimization.txt new file mode 100644 index 0000000000..d4b766ffc7 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/missing_deoptimization.txt @@ -0,0 +1,24 @@ + + +# +# Fatal error in , line 0 +# Missing deoptimization information for OptimizedFrame::Summarize. +# +# +# +#FailureMessage Object: 0x7ffc291ecd70 +==== C stack trace =============================== + + /b/s/w/ir/out/build/d8(__interceptor_backtrace+0xca) [0x559a3689f74a] + /b/s/w/ir/out/build/d8(+0x1d3da40) [0x559a380f9a40] + /b/s/w/ir/out/build/d8(+0x1d3cd54) [0x559a380f8d54] + /b/s/w/ir/out/build/d8(+0x1d2af46) [0x559a380e6f46] + /b/s/w/ir/out/build/d8(+0x803da6) [0x559a36bbfda6] + /b/s/w/ir/out/build/d8(+0x7fc16d) [0x559a36bb816d] + /b/s/w/ir/out/build/d8(+0x8180f8) [0x559a36bd40f8] + /b/s/w/ir/out/build/d8(+0x816ad4) [0x559a36bd2ad4] + /b/s/w/ir/out/build/d8(+0x8163a4) [0x559a36bd23a4] + /b/s/w/ir/out/build/d8(+0xf772fc) [0x559a373332fc] + [0x5599bfe6fe78] +Received signal 6 +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/seg_map_err.expected.json b/tools/testrunner/testproc/stack_utils/testdata/seg_map_err.expected.json new file mode 100644 index 0000000000..b7d8cae391 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/seg_map_err.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Null-dereference", + "crash_state": "NULL" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/seg_map_err.txt b/tools/testrunner/testproc/stack_utils/testdata/seg_map_err.txt new file mode 100644 index 0000000000..31f2ecf636 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/seg_map_err.txt @@ -0,0 +1,13 @@ +Received signal 11 SEGV_MAPERR 000000000030 + +==== C stack trace =============================== + + [0x55b2023882a7] + [0x7f044e972980] + [0x7f044e969fd0] + [0x55b201949b84] + [0x55b20194b6da] + [0x55b201cf7206] + [0x0ad7000b4778] +[end of stack trace] +Segmentation fault (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/segmentation_error.expected.json b/tools/testrunner/testproc/stack_utils/testdata/segmentation_error.expected.json new file mode 100644 index 0000000000..1db5d5d168 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/segmentation_error.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "UNKNOWN", + "crash_state": "NULL" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/segmentation_error.txt b/tools/testrunner/testproc/stack_utils/testdata/segmentation_error.txt new file mode 100644 index 0000000000..74cb7e5076 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/segmentation_error.txt @@ -0,0 +1,9 @@ +Received signal 11 SEGV_ACCERR 2e2d00002258 + +==== C stack trace =============================== + + [0x5562678976c6] + [0x7f36e5f68980] + [0x5561e008adaf] +[end of stack trace] +Segmentation fault (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/segmentation_fault.expected.json b/tools/testrunner/testproc/stack_utils/testdata/segmentation_fault.expected.json new file mode 100644 index 0000000000..b7d8cae391 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/segmentation_fault.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Null-dereference", + "crash_state": "NULL" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/segmentation_fault.txt b/tools/testrunner/testproc/stack_utils/testdata/segmentation_fault.txt new file mode 100644 index 0000000000..0e3624729b --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/segmentation_fault.txt @@ -0,0 +1,15 @@ +Received signal 11 SEGV_MAPERR 000000000000 + +==== C stack trace =============================== + + [0x562f1fdf8d47] + [0x7f32df0c6980] + [0x562f1f293057] + [0x562f1f292f0e] + [0x562f1fdf9fd7] + [0x562f1fdfc139] + [0x562f1fdf72f0] + [0x7f32df0bb6db] + [0x7f32de82e71f] +[end of stack trace] +Segmentation fault (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/stack_frame.expected.json b/tools/testrunner/testproc/stack_utils/testdata/stack_frame.expected.json new file mode 100644 index 0000000000..5bc889cc2b --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/stack_frame.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "DCHECK failure", + "crash_state": "is_main_thread_barrier_ in marking-barrier.cc" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/stack_frame.txt b/tools/testrunner/testproc/stack_utils/testdata/stack_frame.txt new file mode 100644 index 0000000000..1824808160 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/stack_frame.txt @@ -0,0 +1,60 @@ + + +# +# Fatal error in ../../src/execution/frames.cc, line 1430 +# Debug check failed: !StackFrame::IsTypeMarker(marker). +# +# +# +#FailureMessage Object: 0x7fff924da4a0Received signal 6 + +==== C stack trace =============================== + + [0x7fb3c0ab1503] + [0x7fb3c0ab1451] + [0x7fb3bd06a980] + [0x7fb3bc907e87] + [0x7fb3bc9097f1] + [0x7fb3c0aaf082] + [0x7fb3c0a90ed0] + [0x7fb3c0a90965] + [0x7fb3bf128909] + [0x7fb3bf1408c9] + [0x7fb3bf27ec15] + [0x7fb3bf27776b] + [0x7fb3bf274c53] + [0x7fb3bf271e03] + [0x7fb3bf262ae1] + [0x7fb3bf262b71] + [0x7fb3bf20b953] + [0x7fb3bf1d3a22] + [0x7fb3c01f46ca] + +# +# Fatal error in ../../src/heap/marking-barrier.cc, line 77 +# Debug check failed: is_main_thread_barrier_. +# +# +# +#FailureMessage Object: 0x7fbcb88255c0Received signal 6 + +==== C stack trace =============================== + + [0x7fbcc0a3a7f7] + [0x7fbcbd9c1980] + [0x7fbcbd25efb7] + [0x7fbcbd260921] + [0x7fbcc0a38932] + [0x7fbcc0a1dfa0] + [0x7fbcc0a1da15] + [0x7fbcbf65b64a] + [0x7fbcbfeb60df] + [0x7fbcbfec3389] + [0x7fbcbfec324c] + [0x7fbcbfea5c34] + [0x7fbcbfea7f18] + [0x7fbcc0a395a0] + [0x7fbcbd9b66db] + [0x7fbcbd34171f] +[end of stack trace] +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/static_assertion_1.expected.json b/tools/testrunner/testproc/stack_utils/testdata/static_assertion_1.expected.json new file mode 100644 index 0000000000..2757592999 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/static_assertion_1.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Static Assertion", + "crash_state": "Expected Turbofan static assert to hold, but got non-true input" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/static_assertion_1.txt b/tools/testrunner/testproc/stack_utils/testdata/static_assertion_1.txt new file mode 100644 index 0000000000..a8b7760eb7 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/static_assertion_1.txt @@ -0,0 +1,37 @@ + + +# +# Fatal error in ../../src/compiler/backend/instruction-selector.cc, line 3202 +# Expected Turbofan static assert to hold, but got non-true input: + %TurbofanStaticAssert +# +# +# +#FailureMessage Object: 0x7ffc34427560Received signal 6 + +==== C stack trace =============================== + + [0x7efe1f546b93] + [0x7efe1f546ae2] + [0x7efe1b907980] + [0x7efe1b1a4e87] + [0x7efe1b1a67f1] + [0x7efe1f544712] + [0x7efe1f5263d2] + [0x7efe1ed5b249] + [0x7efe1ed58a58] + [0x7efe1ed4e6fa] + [0x7efe1ed4d4d6] + [0x7efe1f0ba876] + [0x7efe1f07023b] + [0x7efe1f06837b] + [0x7efe1f062006] + [0x7efe1f061580] + [0x7efe1d8c2710] + [0x7efe1d8d5502] + [0x7efe1d8d8a55] + [0x7efe1e509ec6] + [0x7efe1e509879] + [0x7efd9f9da37f] +[end of stack trace] +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/static_assertion_2.expected.json b/tools/testrunner/testproc/stack_utils/testdata/static_assertion_2.expected.json new file mode 100644 index 0000000000..2757592999 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/static_assertion_2.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Static Assertion", + "crash_state": "Expected Turbofan static assert to hold, but got non-true input" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/static_assertion_2.txt b/tools/testrunner/testproc/stack_utils/testdata/static_assertion_2.txt new file mode 100644 index 0000000000..7fc1f21a1a --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/static_assertion_2.txt @@ -0,0 +1,37 @@ +unsupported node type: StaticAssert[%TurbofanStaticAssert] +132: StaticAssert[%TurbofanStaticAssert](113, 319) + 113: Word32Equal(130, 128) + 319: DeoptimizeUnless[WrongCallTarget, FeedbackSource(INVALID)](86, 253, 303, 129) + + +# +# Fatal error in , line 0 +# unimplemented code +# +# +# +#FailureMessage Object: 0x7fff6c485990Received signal 6 + +==== C stack trace =============================== + + [0x55b035fcd8da] + [0x55b03798aebb] + [0x55b035fb3607] + [0x55b035fb3b24] + [0x7fb750346980] + [0x7fb74f5a9e87] + [0x7fb74f5ab7f1] + [0x55b035fb2283] + [0x55b037985d87] + [0x55b0379767ab] + [0x55b03765bdf7] + [0x55b03764ee25] + [0x55b0374fdbcb] + [0x55b0374f7d42] + [0x55b0374f6c77] + [0x55b0362183f8] + [0x55b03621b230] + [0x55b036a886a8] + [0x55b03776c678] +[end of stack trace] +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/storage_is_populated.expected.json b/tools/testrunner/testproc/stack_utils/testdata/storage_is_populated.expected.json new file mode 100644 index 0000000000..35f5d3d799 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/storage_is_populated.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "CHECK failure", + "crash_state": "storage_.is_populated_" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/storage_is_populated.txt b/tools/testrunner/testproc/stack_utils/testdata/storage_is_populated.txt new file mode 100644 index 0000000000..b47006d570 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/storage_is_populated.txt @@ -0,0 +1,35 @@ + + +# +# Fatal error in , line 0 +# Check failed: storage_.is_populated_. +# +# +# +#FailureMessage Object: 0x7f9d3a7b77b0 +==== C stack trace =============================== + + /b/s/w/ir/out/build/d8(+0xec0b43) [0x55e9d253cb43] + /b/s/w/ir/out/build/d8(+0xec03eb) [0x55e9d253c3eb] + /b/s/w/ir/out/build/d8(+0xeb68e5) [0x55e9d25328e5] + /b/s/w/ir/out/build/d8(+0xb429ac) [0x55e9d21be9ac] + /b/s/w/ir/out/build/d8(+0xb528b2) [0x55e9d21ce8b2] + /b/s/w/ir/out/build/d8(+0xc228ec) [0x55e9d229e8ec] + /b/s/w/ir/out/build/d8(+0xc1cc2c) [0x55e9d2298c2c] + /b/s/w/ir/out/build/d8(+0xc1cb40) [0x55e9d2298b40] + /b/s/w/ir/out/build/d8(+0xb9dfcf) [0x55e9d2219fcf] + /b/s/w/ir/out/build/d8(+0xb9db13) [0x55e9d2219b13] + /b/s/w/ir/out/build/d8(+0xb9d718) [0x55e9d2219718] + /b/s/w/ir/out/build/d8(+0xc9e908) [0x55e9d231a908] + /b/s/w/ir/out/build/d8(+0xc93912) [0x55e9d230f912] + /b/s/w/ir/out/build/d8(+0xc908f1) [0x55e9d230c8f1] + /b/s/w/ir/out/build/d8(+0xc90a8e) [0x55e9d230ca8e] + /b/s/w/ir/out/build/d8(+0x420adb) [0x55e9d1a9cadb] + /b/s/w/ir/out/build/d8(+0x442558) [0x55e9d1abe558] + /b/s/w/ir/out/build/d8(+0x443082) [0x55e9d1abf082] + /b/s/w/ir/out/build/d8(+0xec3e29) [0x55e9d253fe29] + /b/s/w/ir/out/build/d8(+0xebf060) [0x55e9d253b060] + /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7f9d3bb276db] + /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7f9d3b29a71f] +Received signal 6 +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/topmost_optimized_code.expected.json b/tools/testrunner/testproc/stack_utils/testdata/topmost_optimized_code.expected.json new file mode 100644 index 0000000000..e450139659 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/topmost_optimized_code.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "DCHECK failure", + "crash_state": "topmost_optimized_code.is_null() || safe_if_deopt_triggered || is_builtin_code i" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/topmost_optimized_code.txt b/tools/testrunner/testproc/stack_utils/testdata/topmost_optimized_code.txt new file mode 100644 index 0000000000..0dcbcbe04f --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/topmost_optimized_code.txt @@ -0,0 +1,24 @@ + + +# +# Fatal error in ../../src/deoptimizer/deoptimizer.cc, line 336 +# Debug check failed: topmost_optimized_code.is_null() || safe_if_deopt_triggered || is_builtin_code. +# +# +# +#FailureMessage Object: 0x7ffd90181f90 +==== C stack trace =============================== + + /b/s/w/ir/out/build/libv8_libbase.so(v8::base::debug::StackTrace::StackTrace()+0x13) [0x7f1c0ac48243] + /b/s/w/ir/out/build/libv8_libplatform.so(+0x1865d) [0x7f1c0abf065d] + /b/s/w/ir/out/build/libv8_libbase.so(V8_Fatal(char const*, int, char const*, ...)+0x153) [0x7f1c0ac27bb3] + /b/s/w/ir/out/build/libv8_libbase.so(+0x2a655) [0x7f1c0ac27655] + /b/s/w/ir/out/build/libv8.so(v8::internal::Deoptimizer::DeoptimizeMarkedCodeForContext(v8::internal::NativeContext)+0x2e2) [0x7f1c0918d762] + /b/s/w/ir/out/build/libv8.so(v8::internal::Deoptimizer::DeoptimizeMarkedCode(v8::internal::Isolate*)+0x1d5) [0x7f1c0918f1c5] + /b/s/w/ir/out/build/libv8.so(v8::internal::Heap::DeoptMarkedAllocationSites()+0x5b) [0x7f1c0939e2eb] + /b/s/w/ir/out/build/libv8.so(v8::internal::StackGuard::HandleInterrupts()+0x90c) [0x7f1c0929c4dc] + /b/s/w/ir/out/build/libv8.so(+0x25908c4) [0x7f1c09cd58c4] + /b/s/w/ir/out/build/libv8.so(v8::internal::Runtime_StackGuard(int, unsigned long*, v8::internal::Isolate*)+0xb7) [0x7f1c09cd53b7] + [0x7f1b9f9cc3ff] +Received signal 6 +Aborted (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/type_assertion_1.expected.json b/tools/testrunner/testproc/stack_utils/testdata/type_assertion_1.expected.json new file mode 100644 index 0000000000..128813e84c --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/type_assertion_1.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Type Assertion", + "crash_state": "Trace/breakpoint trap (core dumped)" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/type_assertion_1.txt b/tools/testrunner/testproc/stack_utils/testdata/type_assertion_1.txt new file mode 100644 index 0000000000..42be39ff66 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/type_assertion_1.txt @@ -0,0 +1 @@ +Trace/breakpoint trap (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/type_assertion_2.expected.json b/tools/testrunner/testproc/stack_utils/testdata/type_assertion_2.expected.json new file mode 100644 index 0000000000..128813e84c --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/type_assertion_2.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Type Assertion", + "crash_state": "Trace/breakpoint trap (core dumped)" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/type_assertion_2.txt b/tools/testrunner/testproc/stack_utils/testdata/type_assertion_2.txt new file mode 100644 index 0000000000..ded5a0c24a --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/type_assertion_2.txt @@ -0,0 +1,5 @@ +Type assertion failed! (value/expectedType/nodeId) +0x5510000ffcf5 +0x551000058dfd +5156 +Trace/breakpoint trap (core dumped) diff --git a/tools/testrunner/testproc/stack_utils/testdata/unreachable_code.expected.json b/tools/testrunner/testproc/stack_utils/testdata/unreachable_code.expected.json new file mode 100644 index 0000000000..bead12540a --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/unreachable_code.expected.json @@ -0,0 +1,4 @@ +{ + "crash_type": "Unreachable code", + "crash_state": "NULL" +} \ No newline at end of file diff --git a/tools/testrunner/testproc/stack_utils/testdata/unreachable_code.txt b/tools/testrunner/testproc/stack_utils/testdata/unreachable_code.txt new file mode 100644 index 0000000000..75691ec252 --- /dev/null +++ b/tools/testrunner/testproc/stack_utils/testdata/unreachable_code.txt @@ -0,0 +1,28 @@ + + +# +# Fatal error in , line 0 +# unimplemented code +# +# +# +#FailureMessage Object: 0x7ff272c984b0 +==== C stack trace =============================== + + /b/s/w/ir/out/build/d8(+0x11db253) [0x55cf35eeb253] + /b/s/w/ir/out/build/d8(+0x11daa7b) [0x55cf35eeaa7b] + /b/s/w/ir/out/build/d8(+0x11ced35) [0x55cf35eded35] + /b/s/w/ir/out/build/d8(+0xffd0ee) [0x55cf35d0d0ee] + /b/s/w/ir/out/build/d8(+0xff82d7) [0x55cf35d082d7] + /b/s/w/ir/out/build/d8(+0xf4362a) [0x55cf35c5362a] + /b/s/w/ir/out/build/d8(+0xf3f1ab) [0x55cf35c4f1ab] + /b/s/w/ir/out/build/d8(+0xf3e850) [0x55cf35c4e850] + /b/s/w/ir/out/build/d8(+0x4d80ab) [0x55cf351e80ab] + /b/s/w/ir/out/build/d8(+0x50a448) [0x55cf3521a448] + /b/s/w/ir/out/build/d8(+0x50aef9) [0x55cf3521aef9] + /b/s/w/ir/out/build/d8(+0x11de7e9) [0x55cf35eee7e9] + /b/s/w/ir/out/build/d8(+0x11d8c30) [0x55cf35ee8c30] + /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7ff2750456db] + /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7ff2747b861f] +Received signal 6 +Aborted (core dumped) diff --git a/tools/testrunner/utils/test_utils.py b/tools/testrunner/utils/test_utils.py index d95813296c..320d3d2c7e 100644 --- a/tools/testrunner/utils/test_utils.py +++ b/tools/testrunner/utils/test_utils.py @@ -84,7 +84,7 @@ def clean_json_output(json_path, basedir): if not json_path: return None if not os.path.exists(json_path): - return None + return '--file-does-not-exists--' with open(json_path) as f: json_output = json.load(f) diff --git a/tools/v8_presubmit.py b/tools/v8_presubmit.py index c0584dafe0..ada7e17413 100755 --- a/tools/v8_presubmit.py +++ b/tools/v8_presubmit.py @@ -790,8 +790,7 @@ def PyTests(workspace): result = True for script in FindTests(workspace): print('Running ' + script) - result &= subprocess.call( - [sys.executable, script], stdout=subprocess.PIPE) == 0 + result &= subprocess.call(['vpython3', script], stdout=subprocess.PIPE) == 0 return result