RFR: 8288532: additional review changes for JDK-8286830 [v3]
Patricio Chilano Mateo
pchilanomate at openjdk.org
Tue Jun 21 15:49:54 UTC 2022
On Fri, 17 Jun 2022 21:43:50 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:
>> Update a couple of tests that were modified by JDK-8286830. Now the tests properly
>> honor any specified time limit by splitting the time between both sub-tests.
>> Also pick up a sanity check based on JDK-8288497 that I've been using in recent
>> stress testing.
>
> Daniel D. Daugherty has updated the pull request incrementally with one additional commit since the last revision:
>
> VMThread can get to check in AsyncExceptionHandshake() dtr via a bailout.
Marked as reviewed by pchilanomate (Reviewer).
> I forgot that install_async_exception() can delete the AsyncExceptionHandshake which calls the AsyncExceptionHandshake dtr:
>
> ```
>
> Current thread (0x0000ffff001bab70): VMThread "VM Thread" [stack: 0x0000fffee8110000,0x0000fffee8310000] [id=661857] _threads_hazard_ptr=0x0000fffc8021f770, _nested_threads_hazard_ptr_cnt=0
>
> Stack: [0x0000fffee8110000,0x0000fffee8310000], sp=0x0000fffee830e030, free space=2040k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
> V [libjvm.so+0x1909960] AsyncExceptionHandshake::~AsyncExceptionHandshake()+0x230
> V [libjvm.so+0x1908a7c] JavaThread::install_async_exception(AsyncExceptionHandshake*)+0x4c
> V [libjvm.so+0x190ace8] InstallAsyncExceptionHandshake::do_thread(Thread*)+0x38
> V [libjvm.so+0xe67d20] HandshakeOperation::do_handshake(JavaThread*)+0x13c
> V [libjvm.so+0xe68cec] HandshakeState::try_process(HandshakeOperation*)+0x23c
> V [libjvm.so+0xe6b384] VM_HandshakeAllThreads::doit()+0x1f4
> V [libjvm.so+0x19f2788] VM_Operation::evaluate()+0x168
> V [libjvm.so+0x1a1c9d4] VMThread::evaluate_operation(VM_Operation*)+0x154
> V [libjvm.so+0x1a1e1bc] VMThread::inner_execute(VM_Operation*)+0x45c
> V [libjvm.so+0x1a1e374] VMThread::loop()+0xc4
> V [libjvm.so+0x1a1e4a0] VMThread::run()+0xcc
> V [libjvm.so+0x1907bb8] Thread::call_run()+0xf8
> V [libjvm.so+0x16033a4] thread_native_entry(Thread*)+0x104
> C [libpthread.so.0+0x78f8] start_thread+0x188
> ```
Ah right, the VMThread could take over that synchronous handshake! Thanks for the investigation Dan. The last update looks good.
-------------
PR: https://git.openjdk.org/jdk19/pull/32
More information about the hotspot-runtime-dev
mailing list