af7e68931f
The V8 inspector is using the DebugPropertyIterator (a debug only interface) while building RemoteObjects. The DebugPropertyIterator uses the `KeyAccumulator::GetKeys` for this, which can potentially throw, but the DebugPropertyIterator ignores exceptions and keeps iterating. If multiple iteration steps throw an exception (e.g. due to a pending stack overflow), we run into a CHECK in Isolate::Throw, as we can't throw exceptions while another exception is still pending. This CL fixes the CHECK crash by properly propagating exceptions after the iterator is created or advanced and returning early in the inspector if an exception happens. Please note that the regression test that showcases this behavior is still disabled, as fixing the crash causes currently an endless loop. While the exception in `ValueMirror::getProperties` is handled by early returing, we still need to forward it as the result of the `Runtime::evaluate` all the way up the stack. R=bmeurer@chromium.org, yangguo@chromium.org Bug: chromium:1080638 Change-Id: I1d55e0d70490a06a6bc1b0a3525236411da7f64b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639954 Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#72203}
185 lines
7.5 KiB
Plaintext
185 lines
7.5 KiB
Plaintext
# Copyright 2016 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.
|
|
|
|
[
|
|
##############################################################################
|
|
[ALWAYS, {
|
|
# https://crbug.com/v8/7932
|
|
'runtime/command-line-api-without-side-effects': [SKIP],
|
|
|
|
# Require optimization, so can't be run on Lite mode.
|
|
'cpu-profiler/coverage-block': [PASS, ['lite_mode == True', SKIP]],
|
|
'cpu-profiler/coverage': [PASS, ['lite_mode == True', SKIP]],
|
|
|
|
# https://crbug.com/v8/9029
|
|
'debugger/script-on-after-compile-snapshot': [SKIP],
|
|
|
|
# https://crbug.com/v8/10356
|
|
# This test worked in the wasm interpreter, but fails when using Liftoff for
|
|
# debugging.
|
|
'debugger/wasm-externref-global': [FAIL],
|
|
|
|
# https://crbug.com/1080638
|
|
# The initial CL only fixed the crash. The test still causes an endless
|
|
# loop instead of properly reporting a RangeError for a stack overflow.
|
|
'regress/regress-crbug-1080638': [SKIP],
|
|
}], # ALWAYS
|
|
|
|
##############################################################################
|
|
['mode != debug or dcheck_always_on', {
|
|
# Investigating flaky tests: https://crbug.com/v8/10876. Enable only on pure debug.
|
|
'debugger/pause-on-oom': [SKIP],
|
|
'debugger/pause-on-oom-wide': [SKIP],
|
|
'debugger/pause-on-oom-extrawide': [SKIP],
|
|
}], # 'mode != debug or dcheck_always_on'
|
|
|
|
##############################################################################
|
|
['system == android', {
|
|
# https://crbug.com/v8/8197
|
|
'debugger/get-possible-breakpoints-class-fields': [SKIP],
|
|
}], # 'system == android'
|
|
|
|
##############################################################################
|
|
['variant != default', {
|
|
# Issue 6167.
|
|
'debugger/eval-scopes': [PASS, FAIL],
|
|
'debugger/scope-skip-variables-with-empty-name': [PASS, FAIL],
|
|
'debugger/update-call-frame-scopes': [PASS, FAIL],
|
|
'debugger/side-effect-free-coverage-enabled': [PASS, FAIL],
|
|
'debugger/side-effect-free-debug-evaluate': [PASS, FAIL],
|
|
'debugger/evaluate-on-call-frame-in-module': [PASS, FAIL],
|
|
}], # variant != default
|
|
|
|
##############################################################################
|
|
['lite_mode or variant == jitless', {
|
|
# Lite mode does not allocate feedback vector.
|
|
'type-profiler/type-profile-start-stop': [SKIP],
|
|
'type-profiler/type-profile': [SKIP],
|
|
'type-profiler/type-profile-with-to-string-tag': [SKIP],
|
|
'type-profiler/type-profile-with-classes': [SKIP],
|
|
'type-profiler/type-profile-disable': [SKIP],
|
|
|
|
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
|
|
'debugger/asm-js-stack': [SKIP],
|
|
'debugger/asm-js-breakpoint-before-exec': [SKIP],
|
|
'debugger/asm-js-breakpoint-during-exec': [SKIP],
|
|
'debugger/wasm-*': [SKIP],
|
|
'cpu-profiler/console-profile-wasm': [SKIP],
|
|
}], # 'lite_mode or variant == jitless'
|
|
|
|
##############################################################################
|
|
['variant == jitless', {
|
|
# https://crbug.com/v8/7777
|
|
'cpu-profiler/coverage': [SKIP],
|
|
'cpu-profiler/coverage-block': [SKIP],
|
|
}], # variant == jitless
|
|
|
|
##############################################################################
|
|
['(arch == arm or arch == arm64) and simulator_run', {
|
|
# Slow tests: https://crbug.com/v8/7783
|
|
'runtime/console-messages-limits': [PASS, NO_VARIANTS, ['mode == debug', SKIP]],
|
|
}], # (arch == arm or arch == arm64) and simulator_run
|
|
|
|
##############################################################################
|
|
['(arch == ppc64) and simulator_run', {
|
|
# Slow test: https://crbug.com/v8/10965
|
|
'runtime/console-messages-limits': [PASS, SLOW],
|
|
'debugger/regress-1125934': [PASS, SLOW],
|
|
}], # (arch == ppc64) and simulator_run
|
|
|
|
##############################################################################
|
|
['variant == no_wasm_traps', {
|
|
'*': [SKIP],
|
|
}], # variant == no_wasm_traps
|
|
|
|
##############################################################################
|
|
['arch == ppc or arch == ppc64', {
|
|
# Liftoff needs to be enabled before running these tests.
|
|
'debugger/wasm-*': [SKIP],
|
|
}], # 'arch == ppc or arch == ppc64'
|
|
|
|
##############################################################################
|
|
['arch == s390 or arch == s390x', {
|
|
# Stack manipulations in LiveEdit is not implemented for this arch.
|
|
'debugger/set-script-source-stack-padding': [SKIP],
|
|
# Liftoff needs to be enabled before running these tests.
|
|
'debugger/wasm-*': [SKIP],
|
|
}], # 'arch == s390 or arch == s390x'
|
|
|
|
##############################################################################
|
|
['(arch == mipsel or arch == mips64el) and not simd_mips', {
|
|
# Skip tests that fail on MIPS architectures that don't support SIMD.
|
|
'debugger/wasm-scope-info*': [SKIP],
|
|
}], # '(arch == mipsel or arch == mips64el) and not simd_mips'
|
|
|
|
################################################################################
|
|
['variant == stress_snapshot', {
|
|
'*': [SKIP], # only relevant for mjsunit tests.
|
|
}],
|
|
|
|
################################################################################
|
|
['variant == stress', {
|
|
'*': [SKIP], # only relevant for mjsunit tests.
|
|
}],
|
|
|
|
##############################################################################
|
|
['tsan == True', {
|
|
# TSan handles SIGPROF incorrectly (https://crbug.com/v8/9869).
|
|
'cpu-profiler/console-profile-wasm': [SKIP],
|
|
}], # 'tsan == True'
|
|
|
|
##############################################################################
|
|
['gc_stress or gc_fuzzer or variant == stress_incremental_marking', {
|
|
# Skip tests that fail with GC stress: https://crbug.com/v8/10748
|
|
'cpu-profiler/coverage': [SKIP],
|
|
'cpu-profiler/coverage-block': [SKIP],
|
|
'debugger/get-possible-breakpoints': [SKIP],
|
|
'debugger/get-possible-breakpoints-array-literal': [SKIP],
|
|
'debugger/get-possible-breakpoints-master': [SKIP],
|
|
'debugger/limit-size-of-collected-scripts': [SKIP],
|
|
'debugger/not-hold-promises': [SKIP],
|
|
'debugger/regression-424142': [SKIP],
|
|
'debugger/return-break-locations': [SKIP],
|
|
'debugger/script-on-after-compile': [SKIP],
|
|
'debugger/set-breakpoint-at-last-line': [SKIP],
|
|
'debugger/set-breakpoint-breaks-on-first-breakable-location': [SKIP],
|
|
'heap-profiler/collect-garbage' : [SKIP],
|
|
'runtime-call-stats/collection': [SKIP],
|
|
'runtime/context-destroyed-on-context-collected': [SKIP],
|
|
'runtime/evaluate-async': [SKIP],
|
|
'runtime/internal-properties-entries': [SKIP],
|
|
'type-profiler/type-profile-start-stop': [SKIP],
|
|
}], # gc_stress
|
|
|
|
##############################################################################
|
|
['variant == stress_js_bg_compile_wasm_code_gc', {
|
|
# Skip tests that fail with GC stress: https://crbug.com/v8/10748
|
|
'debugger/wasm-debug-command': [SKIP],
|
|
'debugger/wasm-global-names': [SKIP],
|
|
'debugger/wasm-set-breakpoint': [SKIP],
|
|
'debugger/wasm-source': [SKIP],
|
|
'debugger/wasm-stepping-with-skiplist': [SKIP],
|
|
}], # stress_js_bg_compile_wasm_code_gc
|
|
|
|
##############################################################################
|
|
['variant == stress_concurrent_allocation', {
|
|
# TODO(dinfuehr): Fix tests such that we can remove these lines.
|
|
'cpu-profiler/coverage': [SKIP],
|
|
'cpu-profiler/coverage-block': [SKIP],
|
|
'runtime/internal-properties-entries': [SKIP],
|
|
'runtime-call-stats/collection': [SKIP],
|
|
|
|
# Skip tests that might fail with concurrent allocation
|
|
'debugger/pause-on-oom-wide': [SKIP],
|
|
}], # stress_concurrent_allocation
|
|
|
|
##############################################################################
|
|
['asan == True', {
|
|
# There are still memory leaks in some inspector tests
|
|
# (https://crbug.com/v8/11107).
|
|
'runtime/evaluate-async': [SKIP],
|
|
}], # asan == True
|
|
|
|
]
|