JVM hangs beyond recovery

Y. Srinivas Ramakrishna y.s.ramakrishna at oracle.com
Fri Apr 16 16:09:54 PDT 2010


On 04/16/10 15:51, Stas Oskin wrote:
> Hi.
> 
> [Make sure to provide them with the JDK version string.]
> 
> Right, totally forgot.
> The Java version is:
> java version "1.6.0_16"
> Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
> Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)

I suggest using 6u18 (with -XX:-ReduceInitialCardMarks as in release
notes; this is independent of the hang you are seeing) to see
if the hang reproduces; just on the off-chance this may have been
fixed in the interim (i must state that such a hang does not sound
familiar to me though). Or if you have a reproducible test
case that would be best. If you have a support contract (and even
if you don't), you should probably file a bug (through support, if
you have a support contract), including the test case.

> 
> Running on Linux x86_64.
> 
> 
> The most import point in my opinion, is that JVM both compiles the Java 
> code in two concurrent threads, and runs JNI code at a same time. So I 
> would if this might be what causing the hangs?

I don't think so. The compiler threads have stopped for the safepoint
(see below), and (JNI) native code (outside of the JVM) is allowed to run.

Thread 29 (Thread 0x40fe6940 (LWP 20859)):
#0  0x0000003c7160ad09 in pthread_cond_wait@@GLIBC_2.3.2 ()
    from /lib64/libpthread.so.0
#1  0x00002ba3704859f7 in os::PlatformEvent::park ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#2  0x00002ba37045e6f9 in Monitor::ILock ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#3  0x00002ba37045ee30 in Monitor::lock_without_safepoint_check ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#4  0x00002ba3704efbfa in SafepointSynchronize::block ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#5  0x00002ba37056c89b in JavaThread::check_safepoint_and_suspend_for_native_trans () from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#6  0x00002ba37012f642 in ThreadStateTransition::transition_from_native ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#7  0x00002ba37015833b in BufferBlob::create ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#8  0x00002ba37016bbd9 in Compile::init_scratch_buffer_blob ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#9  0x00002ba37048ab2c in Compile::Output ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#10 0x00002ba370170d4d in Compile::Code_Gen ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#11 0x00002ba37016d364 in Compile::Compile ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#12 0x00002ba370101dee in C2Compiler::compile_method ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#13 0x00002ba370176028 in CompileBroker::invoke_compiler_on_method ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#14 0x00002ba3701759c6 in CompileBroker::compiler_thread_loop ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#15 0x00002ba3705711e9 in compiler_thread_entry ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#16 0x00002ba37056acb1 in JavaThread::run ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#17 0x00002ba37048626f in java_start ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#18 0x0000003c71606617 in start_thread () from /lib64/libpthread.so.0
#19 0x0000003c70ad3c2d in clone () from /lib64/libc.so.6

Thread 28 (Thread 0x416ab940 (LWP 20860)):
#0  0x0000003c7160ad09 in pthread_cond_wait@@GLIBC_2.3.2 ()
    from /lib64/libpthread.so.0
#1  0x00002ba3704859f7 in os::PlatformEvent::park ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#2  0x00002ba37045e6f9 in Monitor::ILock ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#3  0x00002ba37045ee30 in Monitor::lock_without_safepoint_check ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#4  0x00002ba3704efbfa in SafepointSynchronize::block ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#5  0x00002ba37056c89b in JavaThread::check_safepoint_and_suspend_for_native_trans () from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#6  0x00002ba37012b066 in ciObject::klass ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#7  0x00002ba370441fb8 in LoadNode::Value ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#8  0x00002ba3704b814b in PhaseIterGVN::transform_old ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#9  0x00002ba3704b7cad in PhaseIterGVN::optimize ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#10 0x00002ba37042bbc9 in PhaseMacroExpand::expand_macro_nodes ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#11 0x00002ba37017062e in Compile::Optimize ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#12 0x00002ba37016d313 in Compile::Compile ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#13 0x00002ba370101dee in C2Compiler::compile_method ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#14 0x00002ba370176028 in CompileBroker::invoke_compiler_on_method ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#15 0x00002ba3701759c6 in CompileBroker::compiler_thread_loop ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#16 0x00002ba3705711e9 in compiler_thread_entry ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#17 0x00002ba37056acb1 in JavaThread::run ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#18 0x00002ba37048626f in java_start ()
    from /usr/java/jdk1.6.0_16/jre/lib/amd64/server/libjvm.so
#19 0x0000003c71606617 in start_thread () from /lib64/libpthread.so.0
#20 0x0000003c70ad3c2d in clone () from /lib64/libc.so.6


I am not familiar with this part of the runtime or its debugging,
so I will copy the alias and let someone more familiar with such
issues to help you. (Recall also the suggestions for the
[Print]Safepoint[Statistics|[Timeout*]] flags in previous email
to help with debugging.)

hope that helps; 'bye!
-- ramki

> 
> Thanks again.



More information about the hotspot-runtime-dev mailing list