Hello,
I am hunting the root cause of a sporadic internal error at jni.cpp:1198. It would be great if anyone
with access to the source code could tell me what check is taking place on that line or have
some guidance.
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (jni.cpp:1198), pid=4068, tid=3436
# Error: ShouldNotReachHere()
#
# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)
# Java VM: Java HotSpot(TM) Client VM (24.51-b03 mixed mode windows-x86 )
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
This is the callstack of the thread that is causing the internal error:
KernelBase.dll!_DebugBreak
jvm.dll!72da801e()
[Frames below may be incorrect and/or missing, no symbols loaded for jvm.dll]
jvm.dll!72d8dce5() Unknown
ntdll.dll_ZwSetEvent
jvm.dll!72da2798()
jvm.dll!72d87ee4()
jvm.dll!72cc92d6()
jvm.dll!72cc9ba8()
jvm.dll!72ccd813()
jvm.dll!72ce04f0()
myjni.dll!JNIEnv_::CallVoidMethod(_jobject * obj=0x49b36654, _jmethodID * methodID=0x49a01064, ...)
myjni.dll!callCaptureCallback(_jobject * const callback=0x49b36654, int numBytesAdded=11487232)
myjni.dll!captureCallbackFunction(MyMessageReport report={...})
myengine.dll!StatusReporter::operator()()
myengine.dll!boost::detail::thread_data<boost::reference_wrapper<StatusReporter> const >::run()
myengine.dll!boost::`anonymous namespace'::thread_start_function(void * param=0x4fc9d730)
msvcr110d.dll!_callthreadstartex() Line 354 C
msvcr110d.dll!_threadstartex(void * ptd=0x4fcbeb80) Line 337 C
kernel32.dll!76b633ca() Unknown
ntdll.dll!___RtlUserThreadStart
ntdll.dll!__RtlUserThreadStart
The thread is a native worker thread spawned by my JNI library. Before calling back in Java the
thread successfully registers itself with the VM that is pJvm->AttachCurrentThread() returns JINI_OK.
I am running java with -Xcheck:jni. Nothing is reported.
The call from ntdll.dll|ZwSetEvent into jvm.dll sporadically triggers this internal error. Any idea what goes
wrong?
Thanks,
Nicolas