Weird deadlock between CXF and spring on WAS.
---------------------------------------------

                 Key: CXF-1839
                 URL: https://issues.apache.org/jira/browse/CXF-1839
             Project: CXF
          Issue Type: Bug
          Components: JAX-WS Runtime
    Affects Versions: 2.1.1
         Environment: Windows XP, Ubuntu 7.04, jdk 1.5.0_09, CXF 2.1, spring 
2.0.2, quartz 1.6.1, WAS 6.1
            Reporter: Alton Idowu


We are using quartz to make periodic calls to different web services.   Every 
once in a while we get a deadlock that eventually crashes our WAS server.  The 
stack trace below does not make sense to me.  it appears that worker-5 has a 
lock on the LinkedHashMap containing the spring singleton beans that worker-7 
is attempt to access in the synchronized configurebeans method.  And worker -5 
is waiting for worker-7 to exit the configurebeans method.  I took a quick look 
at the code and it didn't seem that worker-5 kept a reference.  It would be 
great if someone point us in the right direction to solve this.  

Let me know if you require additional information....


Found one Java-level deadlock:
=============================
"clusteredScheduler_Worker-5":
  waiting to lock monitor 0x0000000101f4a6b8 (object 0xfffffffed1c55700, a 
org.apache.cxf.configuration.spring.ConfigurerImpl),
  which is held by "clusteredScheduler_Worker-7"
"clusteredScheduler_Worker-7":
  waiting to lock monitor 0x0000000101f4af40 (object 0xfffffffed1b36d20, a 
java.util.LinkedHashMap),
  which is held by "clusteredScheduler_Worker-5"

Java stack information for the threads listed above:
===================================================
"clusteredScheduler_Worker-5":
        at 
org.apache.cxf.configuration.spring.ConfigurerImpl.configureBean(ConfigurerImpl.java:93)
        - waiting to lock <0xfffffffed1c55700> (a 
org.apache.cxf.configuration.spring.ConfigurerImpl)
        at 
org.apache.cxf.configuration.spring.ConfigurerImpl.configureBean(ConfigurerImpl.java:88)
        at 
org.apache.cxf.transport.http.AbstractHTTPTransportFactory.configure(AbstractHTTPTransportFactory.java:223)
        at 
org.apache.cxf.transport.http.AbstractHTTPTransportFactory.getConduit(AbstractHTTPTransportFactory.java:163)
        at 
org.apache.cxf.transport.http.AbstractHTTPTransportFactory.getConduit(AbstractHTTPTransportFactory.java:145)
        at 
org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(AbstractConduitSelector.java:73)
        at 
org.apache.cxf.endpoint.UpfrontConduitSelector.selectConduit(UpfrontConduitSelector.java:71)
        at org.apache.cxf.endpoint.ClientImpl.getConduit(ClientImpl.java:468)
        at 
ilss.suidm.dao.ltc.service.LtcClientFactoryBean.create(LtcClientFactoryBean.java:70)
        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.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:102)
        at 
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:275)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:727)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:679)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:388)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
        - locked <0xfffffffed1b36d20> (a java.util.LinkedHashMap)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:247)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:161)
        at 
org.springframework.aop.target.LazyInitTargetSource.getTarget(LazyInitTargetSource.java:66)
        - locked <0xfffffffed22b0bf0> (a 
org.springframework.aop.target.LazyInitTargetSource)
        at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:184)
        at $Proxy2.processTransaction(Unknown Source)
        at ilss.suidm.dao.ltc.LtcDAO.processTransaction(LtcDAO.java:80)
        at 
ilss.sysmonitor.delegate.SystemMonitoringDelegate.runSystemTestLTC(SystemMonitoringDelegate.java:544)
        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 
ilss.common.reflect.ReflectionUtil.invokeMethod(ReflectionUtil.java:294)
        at 
ilss.common.reflect.ReflectionUtil.invokeMethodByForce(ReflectionUtil.java:73)
        at 
ilss.sysmonitor.delegate.SystemMonitoringDelegate.runSystemTests(SystemMonitoringDelegate.java:524)
        at 
ilss.common.cron.sysmonitor.BaseSysMonitorTestJobBean.executeJob(BaseSysMonitorTestJobBean.java:36)
        at ilss.common.cron.BaseJobBean.executeInternal(BaseJobBean.java:37)
        at 
org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at 
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
"clusteredScheduler_Worker-7":
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.containsSingleton(DefaultSingletonBeanRegistry.java:164)
        - waiting to lock <0xfffffffed1b36d20> (a java.util.LinkedHashMap)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.containsLocalBean(AbstractBeanFactory.java:511)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.containsBean(AbstractBeanFactory.java:319)
        at 
org.springframework.context.support.AbstractApplicationContext.containsBean(AbstractApplicationContext.java:650)
        at 
org.apache.cxf.configuration.spring.ConfigurerImpl.configureBean(ConfigurerImpl.java:118)
        - locked <0xfffffffed1c55700> (a 
org.apache.cxf.configuration.spring.ConfigurerImpl)
        at 
org.apache.cxf.jaxws.ServiceImpl.configureObject(ServiceImpl.java:448)
        at 
org.apache.cxf.jaxws.ServiceImpl.configureObject(ServiceImpl.java:442)
        at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:382)
        at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:247)
        at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:234)
        at javax.xml.ws.Service.getPort(Service.java:40)
        at 
mil.dla.ide.glsc_ots.GLSCOTSIdeService.getGLSCOTSIdePort0(GLSCOTSIdeService.java:65)
        at 
ilss.dla.dao.service.DlaServiceClient.getPort(DlaServiceClient.java:89)
        at 
ilss.dla.dao.service.DlaServiceClient.getRequisitionStatusByReqNum(DlaServiceClient.java:78)
        at ilss.dla.dao.DlaQueryDAO.getRequisitionsByReqNum(DlaQueryDAO.java:98)
        at 
ilss.sysmonitor.delegate.SystemMonitoringDelegate.runSystemTestDLA_WS(SystemMonitoringDelegate.java:569)
        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 
ilss.common.reflect.ReflectionUtil.invokeMethod(ReflectionUtil.java:294)
        at 
ilss.common.reflect.ReflectionUtil.invokeMethodByForce(ReflectionUtil.java:73)
        at 
ilss.sysmonitor.delegate.SystemMonitoringDelegate.runSystemTests(SystemMonitoringDelegate.java:524)
        at 
ilss.common.cron.sysmonitor.BaseSysMonitorTestJobBean.executeJob(BaseSysMonitorTestJobBean.java:36)
        at ilss.common.cron.BaseJobBean.executeInternal(BaseJobBean.java:37)
        at 
org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at 
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)

Found 1 deadlock.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to