Bugs item #811269, was opened at 2003-09-23 18:40
Message generated for change (Comment added) made by slaboure
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=811269&group_id=22866

Category: JBossWeb
Group: v3.2
>Status: Closed
>Resolution: Fixed
Priority: 5
Submitted By: Jeff Gettle (jgettle)
>Assigned to: Sacha Labourey (slaboure)
Summary: deadlock in JettyMBean and PluginManager

Initial Comment:
We're running jboss-3.2.2RC4_jetty-4.2.11 when we
startup JBoss we are seeing the following deadlock
sometimes.

Found one Java-level deadlock:
=============================
"PoolThread-3":
  waiting to lock monitor 0x0010e158 (object
0xd600b9c8, a org.jboss.jetty.JettyMBean),
  which is held by "main"
"main":
  waiting to lock monitor 0x0010e238 (object
0xd5e93948, a org.jboss.console.manager.PluginManager),
  which is held by "PoolThread-3"

Java stack information for the threads listed above:
===================================================
"PoolThread-3":
        at
org.mortbay.util.jmx.ModelMBeanImpl.getMBeanInfo(ModelMBeanImpl.java:590)
        - waiting to lock <0xd600b9c8> (a
org.jboss.jetty.JettyMBean)
        at
org.jboss.mx.server.MBeanServerImpl.getMBeanInfo(MBeanServerImpl.java:568)
        at
org.jboss.console.plugins.helpers.jmx.Server.getDomainData(Server.java:53)
        at
org.jboss.console.plugins.MBeansLister.createJmxDomainsSubNodes(MBeansLister.java:69)
        at
org.jboss.console.plugins.MBeansLister.getTreeForResource(MBeansLister.java:122)
        at
org.jboss.console.plugins.helpers.AbstractPluginWrapper.getSubTreeForResource(AbstractPluginWrapper.java:201)
        at
org.jboss.console.manager.PluginManager.getTreesForResource(PluginManager.java:392)
        at
org.jboss.console.manager.PluginManager.getTreeForProfile(PluginManager.java:192)
        - locked <0xd5e93948> (a
org.jboss.console.manager.PluginManager)
        at
org.jboss.console.manager.PluginManager.getUpdateTreeForProfile(PluginManager.java:275)
        - locked <0xd5e93948> (a
org.jboss.console.manager.PluginManager)
        at
sun.reflect.GeneratedMethodAccessor44.invoke(Unknown
Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
        at
org.jboss.console.remote.InvokerServlet.processRequest(InvokerServlet.java:86)
        at
org.jboss.console.remote.InvokerServlet.doPost(InvokerServlet.java:123)
        at
javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:356)
        at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
        at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
        at
org.mortbay.http.HttpContext.handle(HttpContext.java:1723)
        at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:514)
        at
org.mortbay.http.HttpContext.handle(HttpContext.java:1673)
        at
org.mortbay.http.HttpServer.service(HttpServer.java:879)
        at org.jboss.jetty.Jetty.service(Jetty.java:459)
        at
org.mortbay.http.HttpConnection.service(HttpConnection.java:783)
        at
org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:945)
        at
org.mortbay.http.HttpConnection.handle(HttpConnection.java:800)
        at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:201)
        at
org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
        at
org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:454)
"main":
        at
org.jboss.console.manager.PluginManager.handleNotification(PluginManager.java:372)
        - waiting to lock <0xd5e93948> (a
org.jboss.console.manager.PluginManager)
        at
org.jboss.mx.server.NotificationListenerProxy.handleNotification(NotificationListenerProxy.java:69)
        at
javax.management.NotificationBroadcasterSupport.sendNotification(NotificationBroadcasterSupport.java:95)
        at
javax.management.MBeanServerDelegate.sendNotification(MBeanServerDelegate.java:99)
        at
org.jboss.mx.server.registry.BasicMBeanRegistry.unregisterMBean(BasicMBeanRegistry.java:323)
        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:324)
        at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
        at
org.jboss.mx.interceptor.ObjectReferenceInterceptor.invoke(ObjectReferenceInterceptor.java:59)
        at
org.jboss.mx.interceptor.MBeanAttributeInterceptor.invoke(MBeanAttributeInterceptor.java:43)
        at
org.jboss.mx.interceptor.PersistenceInterceptor2.invoke(PersistenceInterceptor2.java:93)
        at
org.jboss.mx.server.MBeanInvoker.invoke(MBeanInvoker.java:76)
        at
javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:144)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
        at
org.jboss.mx.server.MBeanServerImpl.unregisterMBean(MBeanServerImpl.java:343)
        at
org.mortbay.http.jmx.HttpServerMBean.removeComponent(HttpServerMBean.java:184)
        - locked <0xd600b9c8> (a
org.jboss.jetty.JettyMBean)
        at
org.mortbay.http.HttpServer.removeComponent(HttpServer.java:1273)
        at
org.mortbay.http.HttpServer.removeContext(HttpServer.java:349)
        at org.jboss.jetty.Jetty.undeploy(Jetty.java:374)
        at org.jboss.jetty.Jetty.deploy(Jetty.java:351)
        at
org.jboss.jetty.JettyService.performDeploy(JettyService.java:242)
        at
org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:428)
        - locked <0xd600ba18> (a
org.jboss.jetty.JettyService)
        at
org.jboss.deployment.MainDeployer.start(MainDeployer.java:824)
        at
org.jboss.deployment.MainDeployer.start(MainDeployer.java:816)
        at
org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:632)
        at
org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605)
        at
sun.reflect.GeneratedMethodAccessor20.invoke(Unknown
Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
        at
org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
        at $Proxy6.deploy(Unknown Source)
        at
org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:302)
        at
org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:476)
        - locked <0xd5d68698> (a
org.jboss.deployment.scanner.URLDeploymentScanner)
        at
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:201)
        at
org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:274)
        - locked <0xd5d67e58> (a
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread)
        at
org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:192)
        at
sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
        at
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:976)
        at $Proxy0.start(Unknown Source)
        at
org.jboss.system.ServiceController.start(ServiceController.java:394)
        - locked <0xd5c199e8> (a
org.jboss.system.ServiceController)
        at
sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
        at
org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
        at $Proxy4.start(Unknown Source)
        at
org.jboss.deployment.SARDeployer.start(SARDeployer.java:226)
        at
org.jboss.deployment.MainDeployer.start(MainDeployer.java:824)
        at
org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:632)
        at
org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605)
        at
org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:589)
        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:324)
        at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
        at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
        at
org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
        at $Proxy5.deploy(Unknown Source)
        at
org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:384)
        at
org.jboss.system.server.ServerImpl.start(ServerImpl.java:291)
        at org.jboss.Main.boot(Main.java:150)
        at org.jboss.Main$1.run(Main.java:388)
        at java.lang.Thread.run(Thread.java:534)

Found 1 deadlock.


----------------------------------------------------------------------

>Comment By: Sacha Labourey (slaboure)
Date: 2003-10-10 16:47

Message:
Logged In: YES 
user_id=95900

it was over-synchronized, you were right Adrian.

----------------------------------------------------------------------

Comment By: Adrian Brock (ejort)
Date: 2003-10-10 14:18

Message:
Logged In: YES 
user_id=9459

The stacktraces show a deadlock between jetty undeploying
a web application - which notifies the plugin manager about
unregistering
and MBean
And the plugin manager retrieving Jetty's ModelMBeanInfo
(probably for the same web application).

Both synchronizations look too coarse grained to me,
but I don't know this code.

Regards,
Adrian

----------------------------------------------------------------------

Comment By: Jeff Gettle (jgettle)
Date: 2003-10-10 14:17

Message:
Logged In: YES 
user_id=561553

$ java -version
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build
1.4.2-b28)
Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)

$ uname -a
SunOS app-mbg0 5.8 Generic_108528-23 sun4u sparc SUNW,Ultra-60



----------------------------------------------------------------------

Comment By: Laurent Etiemble (letiemble)
Date: 2003-10-10 14:03

Message:
Logged In: YES 
user_id=437455

Can you provide the description of your environment (OS,
JVM, etc) ?

----------------------------------------------------------------------

Comment By: Jeff Gettle (jgettle)
Date: 2003-10-10 12:42

Message:
Logged In: YES 
user_id=561553

I started jBoss... This was in our test environment... So
when it was starting the jetty container was getting HTTP
requests on the web port (8080) while it was starting up. 

When it became clear that the vm process was hung I sent the
process a QUIT signal and found the above deadlock in stdout.

----------------------------------------------------------------------

Comment By: Laurent Etiemble (letiemble)
Date: 2003-10-10 00:42

Message:
Logged In: YES 
user_id=437455

Can you explain the steps you have followed to catch this
deadlock ?

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=811269&group_id=22866


-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to