Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 37682 invoked from network); 25 Jan 2011 07:42:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 25 Jan 2011 07:42:08 -0000 Received: (qmail 24259 invoked by uid 500); 25 Jan 2011 07:42:08 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 23893 invoked by uid 500); 25 Jan 2011 07:42:06 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 23881 invoked by uid 99); 25 Jan 2011 07:42:06 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 25 Jan 2011 07:42:06 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 25 Jan 2011 07:42:04 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id p0P7fibl001789 for ; Tue, 25 Jan 2011 07:41:44 GMT Message-ID: <4603565.181601295941304283.JavaMail.jira@thor> Date: Tue, 25 Jan 2011 02:41:44 -0500 (EST) From: "Ivan (JIRA)" To: dev@geronimo.apache.org Subject: [jira] Commented: (GERONIMO-5782) Deadlock when trying to undeploy EBA In-Reply-To: <956459.172531295909146861.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/GERONIMO-5782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986262#action_12986262 ] Ivan commented on GERONIMO-5782: -------------------------------- >From the stack traces, I could see two dead lock issues, The first one is between the ConfigurationManager instance and the files instance in DirectoryMonitor, the second one is between the running variable in WebApplication and ConfigurationManager instance. As we know that, all the methods in the ConfigurationManager are synchronized, and in Geronimo 3.0, we are trying to map the configuration lifecycle and bundle/wab/eba lifecycle by bundle listener or something else. I guess that there may be more potential deadlock issues. > Deadlock when trying to undeploy EBA > ------------------------------------ > > Key: GERONIMO-5782 > URL: https://issues.apache.org/jira/browse/GERONIMO-5782 > Project: Geronimo > Issue Type: Bug > Security Level: public(Regular issues) > Components: Hot Deploy Dir, osgi > Affects Versions: 3.0-M2 > Reporter: Jarek Gawor > Attachments: CounterApp_1.0.0.eba, osglist.PNG, Thread-60.PNG > > > When an EBA is deployed using hot deployment directory, a deadlock occurs when trying to undeploy the application (by removing the .eba file from the deploy directory). > {code} > "Thread-56" daemon prio=6 tid=0x21b3a800 nid=0x2034 waiting for monitor entry [0x27c5f000] > java.lang.Thread.State: BLOCKED (on object monitor) > at org.apache.geronimo.deployment.hot.DirectoryMonitor.removeModuleId(DirectoryMonitor.java:178) > - waiting to lock <0x0aab8a10> (a java.util.HashMap) > at org.apache.geronimo.deployment.hot.DirectoryHotDeployer.undeployed(DirectoryHotDeployer.java:93) > at org.apache.geronimo.kernel.config.SimpleConfigurationManager.notifyWatchers(SimpleConfigurationManager.java:1420) > at org.apache.geronimo.kernel.config.SimpleConfigurationManager.uninstallConfiguration(SimpleConfigurationManager.java:1411) > - locked <0x0a5301f8> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager) > at org.apache.geronimo.osgi.web.extender.WebApplication.undeploy(WebApplication.java:261) > at org.apache.geronimo.osgi.web.extender.WebApplication.undeploy(WebApplication.java:291) > at org.apache.geronimo.osgi.web.extender.WebContainerExtender.undeploy(WebContainerExtender.java:232) > at org.apache.geronimo.osgi.web.extender.WebContainerExtender.access$200(WebContainerExtender.java:62) > at org.apache.geronimo.osgi.web.extender.WebContainerExtender$WebBundleTrackerCustomizer.removedBundle(WebContainerExtender.java:195) > at org.osgi.util.tracker.BundleTracker$Tracked.customizerRemoved(BundleTracker.java:467) > at org.osgi.util.tracker.AbstractTracked.untrack(AbstractTracked.java:351) > at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:420) > at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:919) > at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) > at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149) > at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1349) > at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1300) > at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:497) > at org.eclipse.osgi.framework.internal.core.AbstractBundle.uninstallWorker(AbstractBundle.java:788) > at org.eclipse.osgi.framework.internal.core.AbstractBundle.uninstall(AbstractBundle.java:768) > at org.apache.geronimo.aries.builder.ApplicationGBean.doStop(ApplicationGBean.java:271) > at org.apache.geronimo.gbean.runtime.GBeanInstance.destroyInstance(GBeanInstance.java:1164) > at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStop(GBeanInstanceState.java:346) > at org.apache.geronimo.gbean.runtime.GBeanInstanceState.stop(GBeanInstanceState.java:191) > at org.apache.geronimo.gbean.runtime.GBeanInstance.stop(GBeanInstance.java:568) > at org.apache.geronimo.kernel.basic.BasicKernel.stopGBean(BasicKernel.java:430) > at org.apache.geronimo.kernel.config.KernelConfigurationManager.stopRecursive(KernelConfigurationManager.java:261) > at org.apache.geronimo.kernel.config.KernelConfigurationManager.stop(KernelConfigurationManager.java:241) > at org.apache.geronimo.kernel.config.SimpleConfigurationManager.stopConfiguration(SimpleConfigurationManager.java:741) > - locked <0x0a5301f8> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager) > at org.apache.geronimo.kernel.config.SimpleConfigurationManager.stopConfiguration(SimpleConfigurationManager.java:725) > - locked <0x0a5301f8> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager) > at org.apache.geronimo.deployment.plugin.local.UndeployCommand.run(UndeployCommand.java:61) > at java.lang.Thread.run(Thread.java:619) > "DefaultThreadPool 198" daemon prio=6 tid=0x1d496400 nid=0x3168 waiting for monitor entry [0x27a1d000] > java.lang.Thread.State: BLOCKED (on object monitor) > at org.apache.geronimo.kernel.config.SimpleConfigurationManager.getConfiguration(SimpleConfigurationManager.java:264) > - waiting to lock <0x0a5301f8> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager) > at org.apache.geronimo.naming.reference.ConfigurationAwareReference.getConfiguration(ConfigurationAwareReference.java:61) > at org.apache.geronimo.naming.reference.ConfigurationAwareReference.resolveTargetName(ConfigurationAwareReference.java:79) > at org.apache.geronimo.naming.reference.GBeanReference.getContent(GBeanReference.java:46) > at org.apache.xbean.naming.context.ContextUtil.resolve(ContextUtil.java:61) > at org.apache.xbean.naming.context.ContextUtil$ReadOnlyBinding.getObject(ContextUtil.java:199) > at org.apache.xbean.naming.context.ContextFederation.getFederatedBindings(ContextFederation.java:119) > at org.apache.xbean.naming.context.AbstractFederatedContext.getBindings(AbstractFederatedContext.java:99) > at org.apache.xbean.naming.context.AbstractFederatedContext.getBinding(AbstractFederatedContext.java:86) > at org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:133) > at org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:605) > at org.apache.geronimo.naming.java.RootContext.lookup(RootContext.java:55) > at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:148) > at javax.naming.InitialContext.lookup(InitialContext.java:392) > at org.apache.geronimo.console.util.PortletManager.getKernel(PortletManager.java:88) > at org.apache.geronimo.console.util.PortletManager.getConfigurationManager(PortletManager.java:101) > at org.apache.geronimo.console.configmanager.ConfigManagerPortlet.doView(ConfigManagerPortlet.java:211) > at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:348) > at javax.portlet.GenericPortlet.render(GenericPortlet.java:253) > at org.apache.geronimo.console.BasePortlet.render(BasePortlet.java:153) > at org.apache.pluto.driver.services.container.FilterChainImpl.doFilter(FilterChainImpl.java:163) > at org.apache.pluto.driver.services.container.FilterChainImpl.processFilter(FilterChainImpl.java:91) > at org.apache.pluto.driver.services.container.FilterManagerImpl.processFilter(FilterManagerImpl.java:105) > at org.apache.pluto.container.driver.PortletServlet.dispatch(PortletServlet.java:340) > at org.apache.pluto.container.driver.PortletServlet.doGet(PortletServlet.java:261) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:575) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:671) > at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:580) > at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:517) > at org.apache.pluto.driver.container.DefaultPortletInvokerService.invoke(DefaultPortletInvokerService.java:233) > at org.apache.pluto.driver.container.DefaultPortletInvokerService.render(DefaultPortletInvokerService.java:117) > at org.apache.pluto.container.impl.PortletContainerImpl.doRender(PortletContainerImpl.java:157) > at org.apache.pluto.driver.tags.PortletTag.doStartTag(PortletTag.java:165) > at jsp.WEB_002dINF.themes.portlet_002dskin_jsp._jspService(portlet_002dskin_jsp.java:102) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:68) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:671) > at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:580) > at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:517) > at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:930) > at jsp.WEB_002dINF.themes.portlets_002donly_jsp._jspx_meth_c_005fforEach_005f0(portlets_002donly_jsp.java:135) > at jsp.WEB_002dINF.themes.portlets_002donly_jsp._jspService(portlets_002donly_jsp.java:69) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:68) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:671) > at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:580) > at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:517) > at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:930) > at jsp.WEB_002dINF.themes.default_002dtheme_jsp._jspx_meth_c_005fotherwise_005f0(default_002dtheme_jsp.java:227) > at jsp.WEB_002dINF.themes.default_002dtheme_jsp._jspx_meth_c_005fchoose_005f0(default_002dtheme_jsp.java:170) > at jsp.WEB_002dINF.themes.default_002dtheme_jsp._jspService(default_002dtheme_jsp.java:102) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:68) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:671) > at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) > at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) > at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:330) > at org.apache.pluto.driver.PortalDriverServlet.doGet(PortalDriverServlet.java:189) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:575) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at org.apache.geronimo.console.filter.RedirectByHashFilter.doFilter(RedirectByHashFilter.java:116) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at org.apache.geronimo.console.filter.PlutoURLRebuildFilter.doFilter(PlutoURLRebuildFilter.java:48) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at org.apache.geronimo.console.filter.XSSXSRFFilter.doFilter(XSSXSRFFilter.java:130) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) > at org.apache.geronimo.tomcat.security.SecurityValve.invoke(SecurityValve.java:87) > at org.apache.geronimo.tomcat.security.jacc.JACCSecurityValve.invoke(JACCSecurityValve.java:54) > at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:819) > at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47) > at org.apache.geronimo.tomcat.valve.ProtectedTargetValve.invoke(ProtectedTargetValve.java:53) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242) > at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259) > at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:237) > at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281) > - locked <0x0447ba48> (a org.apache.tomcat.util.net.SocketWrapper) > at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:243) > at org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:373) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > Locked ownable synchronizers: > - <0x05e30118> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.