JRockit 27. and Earlier Process Crashes on the Finalizer Thread

(Doc ID 1316331.1)

Last updated on NOVEMBER 05, 2016

Applies to:

Oracle JRockit - Version: R27.5 to R27.6 - Release: JRockit to JRockit
Oracle Weblogic Server - Version: 10.3.4 and later ]
Information in this document applies to any platform.
WebLogic Server

BEA JRockit(R) Version R27.6.5-32_o-121899-1.6.0_14-20091001-2106-solaris-sparcv9 from BEA Systems, Inc.

running on Oracle Solaris 10 on SPARC 64 bit


The WebLogic Server (WLS) state is intermittently changed to ADMIN mode and then back to RUNNING mode, causing temporary outages. The following messages indicate the server restarting:

<Apr 13, 2011 10:30:34 AM> <INFO> <NodeManager> <Server output log file is '/usr03/oradata/domains/o_domain/servers/WC_Spaces/logs/WC_Spaces.out'>


<Apr 13, 2011 10:36:24 AM EDT> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>

As a precautionary measure add the following option to the start up script JAVA_OPTIONS environment variable:


This blocks any O/S level signals to the servers and prevents them going down unexpectedly. If there is a crash, the JVM would generate a file titled jrockit.<pid>.dump file.

In the file jrockit.<pid>.dump, it can see that the server has crashed in the native library /usr01/dba/product/jrockit/jre/lib/sparcv9/jrockit/libjvm.so. This is the library that executes the JVM. Additionally, the crash is happening in the Finalizer thread which is run every time the JVM does a garbage collection process to collect dead objects. The crash dump file shows the the following:

"Finalizer" id=7 idx=0x3c tid=16 lastJavaFrame=0xffffffff78d83470

Stack 0: start=0xffffffff78d00000, end=0xffffffff78d84000, guards=0xffffffff78d0a000 (ok), forbidden=0xffffffff78d06000
Thread Stack Trace:
at findNext+288()@0xffffffff7ddbc9f4
at findNextToReturn+32()@0xffffffff7ddbca94
at refIterFillFromFrame+248()@0xffffffff7ddbcd2c
at trProcessLocksForThread+52()@0xffffffff7ddcb1c0
at get_all_locks+88()@0xffffffff7dcee638
at javaLockConvertLazyToThin+88()@0xffffffff7dcee730
at RJNI_jrockit_vm_Locks_checkLazyLocked+584()@0xffffffff7dcf01d8
at <unknown>(???.c)@0xffffffff7a1e3b08
at <unknown>(???.c)@0xffffffff70b017a8
at <unknown>(???.c)@0xffffffff7b3c8ce8
at <unknown>(???.c)@0xffffffff7a530ce4
at <unknown>(???.c)@0xffffffff7abe11e8
at <unknown>(???.c)@0xffffffff7094b6f0
at <unknown>(???.c)@0xffffffff7a04695c
at <unknown>(???.c)@0xffffffff7a0467b8
at <unknown>(???.c)@0xffffffff7a002588
at stubsCallC2JavaStub+24()@0xffffffff7ddf95d0
at callC2Java+376()@0xffffffff7ddbf2f8
at call_java+348()@0xffffffff7dd09160
at jniCallVoidMethodV+40()@0xffffffff7dd09800
at jniCallVoidMethod+28()@0xffffffff7dd09830
at tsiThreadStub+144()@0xffffffff7dd46b0c
at ptiThreadStub+8()@0xffffffff7ddab090
at _lwp_start+0()@0xffffffff7edd64b8
-- Java stack --
at jrockit/vm/Locks.checkLazyLocked(Ljava/lang/Object;)I(Native Method)
at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1225)[optimized]
at jrockit/vm/Locks.monitorEnter(Locks.java:2466)[optimized]
at com/sun/jndi/ldap/LdapCtx.close(LdapCtx.java:2533)
at com/sun/jndi/ldap/LdapCtx.finalize(LdapCtx.java:2520)
at jrockit/memory/Finalizer.doFinalize(Finalizer.java:30)[inlined]
at jrockit/memory/Finalizer.access$200(Finalizer.java:12)[optimized]
at jrockit/memory/Finalizer$4.run(Finalizer.java:156)
at java/lang/Thread.run(Thread.java:619)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace


Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms