RFR: 8365937: post_method_exit might incorrectly set was_popped_by_exception and value in the middle of stack unwinding [v4]
Leonid Mesnik
lmesnik at openjdk.org
Fri Aug 29 19:11:04 UTC 2025
> The void `JvmtiExport::post_method_exit(JavaThread* thread, Method* method, frame current_frame) `calculates
> `bool exception_exit = state->is_exception_detected() && !state->is_exception_caught();`
> to find if method exit normally or by exception.
> However, JvmtiExport::post_method_exit( method is not called at all in the case of exception. See
> `void JvmtiExport::notice_unwind_due_to_exception(JavaThread *thread, Method* method, address location, oop exception, bool in_handler_frame)`
> where post_method_exit_inner is called directly.
>
> The `exception_exit` is true when exception is processed and the current method is called in the middle of stack unwinding.
>
>
> The fix was a part of
> https://github.com/openjdk/jdk/pull/26713
> for
> https://bugs.openjdk.org/browse/JDK-8365192
Leonid Mesnik has updated the pull request incrementally with two additional commits since the last revision:
- Apply suggestions from code review
Co-authored-by: Patricio Chilano Mateo <patricio.chilano.mateo at oracle.com>
- Update test/hotspot/jtreg/serviceability/jvmti/events/MethodExit/PendingException/libTestMethodExitWithPendingException.cpp
Co-authored-by: Patricio Chilano Mateo <patricio.chilano.mateo at oracle.com>
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/26886/files
- new: https://git.openjdk.org/jdk/pull/26886/files/4e05639a..09607978
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=26886&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=26886&range=02-03
Stats: 5 lines in 2 files changed: 0 ins; 0 del; 5 mod
Patch: https://git.openjdk.org/jdk/pull/26886.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/26886/head:pull/26886
PR: https://git.openjdk.org/jdk/pull/26886
More information about the hotspot-dev
mailing list