geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "viola.lu (JIRA)" <j...@apache.org>
Subject [jira] Updated: (GERONIMO-5782) Deadlock when trying to undeploy EBA
Date Tue, 25 Jan 2011 07:19:47 GMT

     [ https://issues.apache.org/jira/browse/GERONIMO-5782?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

viola.lu updated GERONIMO-5782:
-------------------------------

    Attachment: osglist.PNG
                Thread-60.PNG
                CounterApp_1.0.0.eba

Reproduce steps:
1.Start server with geronimo run, copy attached sample CounterApp_1.0.0.eba to $server_home/var/deploy
2. This hotdeploy will spend 10secs. Create persistent files under repository, and bundles
in cache, and be written in config.xml.
 Run osgi:list, there will be four bundles generated.
application.CounterAPP(1.0.0)
CounterWorldBundle(1.0.0)
CounterWebBundle(1.0.0)
CounterServiceBundle(1.0.0)
Open var/config/config.xml, there will be two modules: one is for application.CounterAPP,
the other is for CounterWebBundle wab.
3.Access the web url: http://localhost:8080/CounterWebBundle/CounterServlet, you will information
in the page:
greet.getText()=2 Hello World!
4. Ctrl-Del CounterApp_1.0.0.eba from deploy folder
5. Run osgi:list,there will be only two bundles listed
application.CounterAPP(1.0.0)
CounterWebBundle(1.0.0)
The WAB is always in status stopping, if you try to stop it. It will shows its state is changed
by another thread , for example thread-60
6. Open jconsole.exe under your jdk folder
Choose "local process"->org.apache.geronimo.cli.DamonCli, click"connect"->Click "thread"
tab->Click "thread-60", you will see it status blocked as attached screenshot


> 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.


Mime
View raw message