Update V8 DEPS (trusted)

Patch 2 also forks:
tools/memory/sanitizer/escalate_sanitizer_warnings.py
to fix https://crbug.com/349588565.

Rolling build: https://chromium.googlesource.com/chromium/src/build/+log/b9d7a70..ea08c53

Rolling third_party/catapult: https://chromium.googlesource.com/catapult/+log/904d293..7a03bcd

Rolling third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/1f4f982..0667395

Rolling third_party/fuchsia-sdk/sdk: version:21.20240613.1.1..version:21.20240620.2.1

Rolling third_party/libc++abi/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi/+log/472d9aa..100fb18

Rolling third_party/re2/src: https://chromium.googlesource.com/external/github.com/google/re2/+log/67570de..85dd7ad

Roll created at https://cr-buildbucket.appspot.com/build/8744551963379423537

Bug: 349588565
Change-Id: I19fa1c2942fc9a007276b23d74b16b0ebe7a1a54
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5645730
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94707}
This commit is contained in:
Michael Achenbach authored and V8 LUCI CQ committed 2024-06-28 11:34:31 +00:00
1 parent 58a34d357a
commit bfea45f0ad
2 files changed
+129 -6

No files matched your search

+6 -6
View File
@@ -88,7 +88,7 @@ vars = {
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling Fuchsia sdk
# and whatever else without interference from each other.
'fuchsia_version': 'version:21.20240613.1.1',
'fuchsia_version': 'version:21.20240620.2.1',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling android_sdk_build-tools_version
@@ -126,7 +126,7 @@ vars = {
deps = {
'build':
Var('chromium_url') + '/chromium/src/build.git' + '@' + 'b9d7a70ab49e26d7b8953e34e37a78733ece7585',
Var('chromium_url') + '/chromium/src/build.git' + '@' + 'ea08c530e2770fb61b649e70be31e11b85868d8f',
'buildtools':
Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + '0f37180034a7c13e1e570f5b41ca1f7c9c29ea70',
'buildtools/linux64': {
@@ -236,7 +236,7 @@ deps = {
'condition': "checkout_centipede_deps",
},
'third_party/catapult': {
'url': Var('chromium_url') + '/catapult.git' + '@' + '904d293e09a30c06aa90a087e5a563aa90ab889b',
'url': Var('chromium_url') + '/catapult.git' + '@' + '7a03bcd1a2b9c67ff0df6afabc743a01ebd8df8b',
'condition': 'checkout_android',
},
'third_party/clang-format/script':
@@ -250,7 +250,7 @@ deps = {
'condition': 'checkout_android',
},
'third_party/depot_tools':
Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '1f4f982beb6c427808779bc28093a5474832f2c2',
Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '06673958a399758b95be5eeae3af2828e8d1a82d',
'third_party/fp16/src':
Var('chromium_url') + '/external/github.com/Maratyszcza/FP16.git' + '@' + '0a92994d729ff76a58f692d3028ca1b64b145d91',
'third_party/fuchsia-gn-sdk': {
@@ -302,7 +302,7 @@ deps = {
'third_party/libc++/src':
Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxx.git' + '@' + '21ea0bf4a787394b584a028a2851cf782a6c763a',
'third_party/libc++abi/src':
Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + '472d9aad97ad38d294aa0634100a4a1c0b6b34b9',
Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + '100fb18f5da1322b7d308f775d706faddce64988',
'third_party/libunwind/src':
Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + 'c8f1d81998280ae2ea0e76ddb60aae6e1b4b860e',
'third_party/llvm-build/Release+Asserts': {
@@ -442,7 +442,7 @@ deps = {
'third_party/protobuf_chrome':
Var('chromium_url') + '/chromium/src/third_party/protobuf.git' + '@' + 'ed9284c473211491ae6de41d60ac0329a79270d8',
'third_party/re2/src':
Var('chromium_url') + '/external/github.com/google/re2.git' + '@' + '67570dea85d20f2a4cf030ad757dcc26baddab40',
Var('chromium_url') + '/external/github.com/google/re2.git' + '@' + '85dd7ad833a73095ecf3e3baea608ba051bbe2c7',
'third_party/requests': {
'url': Var('chromium_url') + '/external/github.com/kennethreitz/requests.git' + '@' + 'c7e0fc087ceeadb8b4c84a0953a422c474093d6d',
'condition': 'checkout_android',
@@ -0,0 +1,123 @@
#!/usr/bin/env python3
# Copyright 2024 the V8 project authors. All rights reserved.
# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""This script searches for sanitizer warnings in stdout that do not trigger
test failures in process, and when it finds one, it updates the test status
to FAILURE for that test case.
This script is added in test_env.py after the test process runs, but before
the results are returned to result_adpater."""
# TODO(349962576): This is a temporary fork of Chromium's:
# tools/memory/sanitizer/escalate_sanitizer_warnings.py
# We should rather share the Chromium script or avoid the necessity to
# include it.
import argparse
import json
import re
import sys
"""
We are looking for various types of sanitizer warnings. They have different
formats but all end in a line 'SUMMARY: (...)Sanitizer:'.
asan example:
=================================================================
==244157==ERROR: AddressSanitizer: heap-use-after-free on address 0x60b0000000f0
...
SUMMARY: AddressSanitizer:
lsan example:
=================================================================
==23646==ERROR: LeakSanitizer: detected memory leaks
...
SUMMARY: AddressSanitizer: 7 byte(s) leaked in 1 allocation(s)
msan example:
==51936==WARNING: MemorySanitizer: use-of-uninitialized-value
...
SUMMARY: MemorySanitizer: use-of-uninitialized-value (/tmp/build/a.out+0x9fd9a)
tsan example:
==================
WARNING: ThreadSanitizer: data race (pid=14909)
...
SUMMARY: ThreadSanitizer: data race base/.../typed_macros_internal.cc:135:8...
ubsan example:
../../content/browser/.../render_widget_host_impl.cc:603:35: runtime error:
member call on address 0x28dc001c8a00 which does not point to an object of type
...
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
"""
#pylint: disable=line-too-long
_SUMMARY_MESSAGE_STR = r'\nSUMMARY: (Address|Leak|Memory|Thread|UndefinedBehavior)Sanitizer:'
_SUMMARY_MESSAGE_REGEX = re.compile(_SUMMARY_MESSAGE_STR)
def escalate_test_status(test_name, test_run):
original_status = test_run['status']
# If test was not a SUCCESS, do not change it.
if original_status != 'SUCCESS':
return False
regex_result = _SUMMARY_MESSAGE_REGEX.search(test_run['output_snippet'])
if regex_result:
sanitizer_type = regex_result.groups()[0]
print('Found %sSanitizer Issue in test "%s"' % (sanitizer_type, test_name))
test_run['original_status'] = test_run['status']
test_run['status'] = 'FAILURE'
test_run['status_processed_by'] = 'escalate_sanitizer_warnings.py'
return True
return False
def escalate_sanitizer_warnings(filename):
with open(filename, 'r') as f:
json_data = json.load(f)
failed_test_names = []
for iteration_data in json_data['per_iteration_data']:
for test_name, test_runs in iteration_data.items():
for test_run in test_runs:
if escalate_test_status(test_name, test_run):
failed_test_names.append(test_name)
if not failed_test_names:
return False
print_sanitizer_results(failed_test_names)
with open(filename, 'w') as f:
json.dump(json_data, f, indent=3, sort_keys=True)
return True
def print_sanitizer_results(failed_test_names):
failure_count = len(failed_test_names)
print('%d test%s failed via sanitizer warnings:' %
(failure_count, ('s' if failure_count != 1 else '')))
for failed_test_name in failed_test_names:
print(' %s' % failed_test_name)
def main():
parser = argparse.ArgumentParser(description='Escalate sanitizer warnings.')
parser.add_argument(
'--test-summary-json-file',
required=True,
help='Path to a JSON file produced by the test launcher. The script will '
'parse output snippets to find sanitizer warnings that are shown as '
'WARNINGS but should cause build failures in sanitizer versions. The '
'status will be FAILED when found. The result will be written back '
'to the JSON file.')
args = parser.parse_args()
if escalate_sanitizer_warnings(args.test_summary_json_file):
# If tests failed due to sanitizer warnings, exit with 1 returncode to
# influence task state.
return 1
if __name__ == '__main__':
sys.exit(main())