RFR: 8261262: Kitchensink24HStress.java crashed with EXCEPTION_ACCESS_VIOLATION [v2]
Robbin Ehn
rehn at openjdk.java.net
Tue Mar 16 08:07:40 UTC 2021
On Mon, 15 Mar 2021 22:05:32 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:
> Thumbs up!
>
> I agree that the code should have checked for "if (vf != NULL) {"
> instead of asserting that "(vf != NULL)".
Thanks Dan!
> src/hotspot/share/prims/jvmtiEnvThreadState.cpp line 266:
>
>> 264: if (!jt->is_exiting() && jt->has_last_Java_frame()) {
>> 265: javaVFrame* vf = jt->last_java_vframe(&rm);
>> 266: assert(vf != NULL, "must have last java frame");
>
> The code before we converted to handshakes also had this assert.
>
> The pre-handshake code did the work in the doit() function for the
> VM_GetCurrentLocation VM-op. This makes me wonder if we always
> had frames here when this was previously done via VM-op? And that
> makes me wonder whether handshakes is doing something different
> so we don't always have a frame here?
The differences is 8253180 (JDK 16), which turns return polls into branches to SafepointBlob instead of going via signal handler.
When setting up the last java frame in the SafepointBlob we get different result than before.
To look at that potential bug I opened 8263576.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3010
More information about the hotspot-dev
mailing list