Java-level deadlock
phchang Feb 14, 2006 11:04 PMFound one Java-level deadlock:
=============================
"JBoss Shutdown Hook":
waiting to lock monitor 0x080f4e14 (object 0x8034f460, a oracle.jbo.JboSyncLock),
which is held by "http-0.0.0.0-8888-Processor16"
"http-0.0.0.0-8888-Processor16":
waiting to lock monitor 0x080f52d4 (object 0x7d13a910, a java.lang.Integer),
which is held by "JBoss Shutdown Hook"
Java stack information for the threads listed above:
===================================================
"JBoss Shutdown Hook":
at oracle.jbo.server.ApplicationModuleImpl.resetState(ApplicationModuleImpl.java:4047)
- waiting to lock <0x8034f460> (a oracle.jbo.JboSyncLock)
at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:7718)
at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:3923
at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:3901
at oracle.jbo.common.ampool.ApplicationPoolImpl.removeResources(ApplicationPoolImpl.java:2430
at oracle.jbo.pool.ResourcePoolManager.removeResourcePool(ResourcePoolManager.java:117)
- locked <0x7d13a910> (a java.lang.Integer)
at oracle.adf.model.servlet.ADFBindingFilter.destroy(ADFBindingFilter.java:118)
at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:258)
at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:3733)
- locked <0x7b805d40> (a java.util.HashMap)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4490)
- locked <0x7b8018d8> (a org.apache.catalina.core.StandardContext)
at org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1213)
at org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4602)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.commons.modeler.BaseModelMBean.invoke(BaseModelMBean.java:503)
at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:150)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.web.tomcat.tc5.TomcatDeployer.performUndeployInternal(TomcatDeployer.java:437)
at org.jboss.web.tomcat.tc5.TomcatDeployer.performUndeploy(TomcatDeployer.java:408)
at org.jboss.web.AbstractWebDeployer.stop(AbstractWebDeployer.java:421)
- locked <0x760f0770> (a org.jboss.web.tomcat.tc5.TomcatDeployer)
at org.jboss.web.WebModule.stopModule(WebModule.java:79)
- locked <0x79f7ac08> (a org.jboss.web.WebModule)
at org.jboss.web.WebModule.stopService(WebModule.java:45)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStop(ServiceMBeanSupport.java:320)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:224)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:642)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:891)
at $Proxy0.stop(Unknown Source)
at org.jboss.system.ServiceController.stop(ServiceController.java:498)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
Type :quit to exit Vim
Environment:we are using JDBC driver residing on a JBOSS server. we have 2 JBOSS servers running on RED HAT LINUX AS 3 (we have 2 identical servers running JBOSS application servers which host our Java applicaction - a copy of our Java application sits on those 2 servers). the application design framework is based on J2EE ADF. here's our sw/hw spec:
Hardware
========
- #CPU: 4
- OS: Linux 2.4.21-32.EL (i386)
JVM Machine
===========
JVM Environment
Free Memory: 1036 MB
Max Memory: 1406 MB
Total Memory: 1406 MB
#Threads: 67
JVM Version: 1.5.0_04-b05 (Sun Microsystems Inc.)
JVM Name: Java HotSpot(TM) Server VM
JBOSS Version
=============
Version: 4.0.1RC1(build: CVSTag=JBoss_4_0_1_RC1 date=200411041143)
Version Name: Zion
Built on: November 4
Temporary Solution:
when we faced the deadlock, we'll stop the JBOSS application server service and start again. then the problem is solved. the restart of JBOSS service will be carried out again once there's another deadlock occur.