On Thu, 30 Oct 2025 16:15:10 GMT, Jorn Vernee <[email protected]> wrote:
>> See the JBS issue for a problem description. >> >> This patch changes the shared scope closure handshake to be able to handle >> 'arbitrary' Java frames on the stack during a scoped memory access. >> >> For the purposes of this change, we assume that 'arbitrary' is limited to >> the following: >> 1. Frames added by calling the constructor of `InternalError` as a result of >> a faulting access to a truncated memory-mapped file (see >> `HandshakeState::handle_unsafe_access_error`). This is the only handshake >> operation (i.e. may be triggered during a scoped access) that calls back >> into Java. >> 2. Frames added by a JVMTI agent that calls back into Java code while >> handling a JVMTI event that happens during a scoped access. >> 3. Any other Java code that runs as part of the linking process. >> >> For (1), we set a flag while we are create the `InternalError`. If a thread >> has that flag set, we know it is in the process of crashing already, so we >> don't have to inspect the stack at all. For (2), all bets are off, so we >> have to walk the entire stack. For (3), this patch switches the hard limit >> of 10 frames for the stack walk to instead bail out at the first frame >> outside of the `java.base` module. In most cases this speeds up the stack >> walk as well, if threads are running other code. >> >> The test `TestSharedCloseJFR` is added for scenario (1), and the test >> `TestSharedCloseJvmti` is added for scenario (2). Existing tests already >> cover scenario (3). >> >> Testing: tier 1-4 > > Jorn Vernee has updated the pull request incrementally with one additional > commit since the last revision: > > David review comment This approach and test look good, but note I am not professional. Let's use a valid bug number for the tests. test/jdk/java/foreign/sharedclosejfr/TestSharedCloseJFR.java line 26: > 24: /* > 25: * @test > 26: * @bug 8351032 Suggestion: * @bug 8370344 test/jdk/java/foreign/sharedclosejvmti/TestSharedCloseJvmti.java line 26: > 24: /* > 25: * @test > 26: * @bug 8351032 Suggestion: * @bug 8370344 ------------- PR Review: https://git.openjdk.org/jdk/pull/27919#pullrequestreview-3401475908 PR Review Comment: https://git.openjdk.org/jdk/pull/27919#discussion_r2479404865 PR Review Comment: https://git.openjdk.org/jdk/pull/27919#discussion_r2479405318
