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