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