summaryrefslogtreecommitdiff
path: root/openjdkjvmti/ti_stack.cc
diff options
context:
space:
mode:
author Hans Boehm <hboehm@google.com> 2023-09-09 23:19:28 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2023-09-09 23:19:28 +0000
commita43e67ea1a314e5c6faf77457ffc5ea39c24d4ca (patch)
tree9ffb0fce0deed66670477257567bd9a617449105 /openjdkjvmti/ti_stack.cc
parentf9fdd3ce0180972dc8d4f0c8410ea7702828a703 (diff)
Revert "Revert^14 "Thread suspension cleanup and deadlock fix""
This reverts commit f9fdd3ce0180972dc8d4f0c8410ea7702828a703. Reason for revert: Very suspicious host-x86_64-debug failure on LUCI. Change-Id: Ia01dd3df8d64d6bc0d12319b06a8380f64a46785
Diffstat (limited to 'openjdkjvmti/ti_stack.cc')
-rw-r--r--openjdkjvmti/ti_stack.cc8
1 files changed, 1 insertions, 7 deletions
diff --git a/openjdkjvmti/ti_stack.cc b/openjdkjvmti/ti_stack.cc
index f399a6738b..9af8861260 100644
--- a/openjdkjvmti/ti_stack.cc
+++ b/openjdkjvmti/ti_stack.cc
@@ -363,13 +363,7 @@ static void RunCheckpointAndWait(Data* data, size_t max_frame_count)
REQUIRES_SHARED(art::Locks::mutator_lock_) {
// Note: requires the mutator lock as the checkpoint requires the mutator lock.
GetAllStackTracesVectorClosure<Data> closure(max_frame_count, data);
- // TODO(b/253671779): Replace this use of RunCheckpointUnchecked() with RunCheckpoint(). This is
- // currently not possible, since the following undesirable call chain (abbreviated here) is then
- // possible and exercised by current tests: (jvmti) GetAllStackTraces -> <this function> ->
- // RunCheckpoint -> GetStackTraceVisitor -> EncodeMethodId -> Class::EnsureMethodIds ->
- // Class::Alloc -> AllocObjectWithAllocator -> potentially suspends, or runs GC, etc. -> CHECK
- // failure.
- size_t barrier_count = art::Runtime::Current()->GetThreadList()->RunCheckpointUnchecked(&closure);
+ size_t barrier_count = art::Runtime::Current()->GetThreadList()->RunCheckpoint(&closure, nullptr);
if (barrier_count == 0) {
return;
}