RFR (XS) 8199012: JVM crash during LevelDB JNI access

Daniel D. Daugherty daniel.daugherty at oracle.com
Thu Mar 8 14:31:34 UTC 2018


On 3/6/18 6:31 PM, David Holmes wrote:
> webrev: http://cr.openjdk.java.net/~dholmes/8199012/webrev/

src/hotspot/share/prims/jni.cpp
     No comments.

Thumbs up!

Since you're in that function would you mind fixing the indenting
on these two lines:

L4223:   HOTSPOT_JNI_DETACHCURRENTTHREAD_RETURN(JNI_OK);
L4231:   HOTSPOT_JNI_DETACHCURRENTTHREAD_RETURN((uint32_t) JNI_ERR);
    Both need two more spaces... no webrev needed if you decide
    to fix this.

Dan


> bug: https://bugs.openjdk.java.net/browse/JDK-8199012
>
> JNI DetachCurrentThread is defined as a no-op if called by a thread 
> that is not attached. But the check for that was occurring after we 
> called VM_Exit::block_if_vm_exited(). If the thread was not in fact 
> attached then we have a NULL current thread and that can cause in 
> crash in VM_Exit::block_if_vm_exited() if we actually need to block - 
> which explains the scenario reported in the bug.
>
> Simple, obvious, fix is to do the "not attached" check first.
>
> Testing:
>   - Mach5 CI equivalent testing (tier1/2)
>   - internal JNI tests
>
> I marked this noreg-hard as a regression test is difficult to set up 
> due to the need to coordinate with a VM shutdown.
>
> Thanks,
> David
>



More information about the hotspot-runtime-dev mailing list