On Wed, 20 Mar 2024 15:59:34 GMT, Patricio Chilano Mateo <pchilanom...@openjdk.org> wrote:
>> Good suggestion, thanks! >> Would the following fix work ? : >> >> >> git diff >> diff --git a/src/hotspot/share/runtime/escapeBarrier.cpp >> b/src/hotspot/share/runtime/escapeBarrier.cpp >> index bc01d900285..1b6d57644dc 100644 >> --- a/src/hotspot/share/runtime/escapeBarrier.cpp >> +++ b/src/hotspot/share/runtime/escapeBarrier.cpp >> @@ -75,7 +75,7 @@ bool EscapeBarrier::deoptimize_objects(int d1, int d2) { >> // These frames are about to be removed. We must not interfere with >> that and signal failure. >> return false; >> } >> - if (deoptee_thread()->has_last_Java_frame()) { >> + if (deoptee_thread()->has_last_Java_frame() && >> deoptee_thread()->last_continuation() == nullptr) { >> assert(calling_thread() == Thread::current(), "should be"); >> KeepStackGCProcessedMark ksgcpm(deoptee_thread()); >> ResourceMark rm(calling_thread()); >> >> >> BTW, it seems the `PopFrame` and the `ForceEarlyReturn<RetType>` are broken >> the same way and, I hope, the fix above should solve the issue. > > Fix looks good. Thanks! ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/18332#discussion_r1532932393