v8/test/inspector/inspector.status
Simon Zünd af7e68931f Forward exceptions while using DebugPropertyIterator
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}
2021-01-20 17:02:43 +00:00

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
]