DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21107>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21107 possible sitemap reload locking issue Summary: possible sitemap reload locking issue Product: Cocoon 2 Version: 2.0.3 Platform: Sun OS/Version: Solaris Status: NEW Severity: Major Priority: Other Component: sitemap components AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Overview Description: We are running tomcat 4.1.24 and cocoon 2.0.3 We had an outage with our application last night which appears to be as a result of modifying the sitemap.xmap on the fly while the service was running and servicing requests. We run 75 CoyoteConnectors (8009) and once we encountered the problem we dumped a stack trace of tomcat which showed 1: 1 x Thread attempting to shut down processing resources (I would imagine to recreate them once the sitemap was recompiled and loaded) 2: 74 x Thread waiting for a lock to be released held by item 1. Steps to Reproduce: Worryingly, we have modified the sitemap and dynamically reloaded it many times in the past, at this time it is difficult to reproduce this problem However, we have two application servers which were modified seperately and they both failed in the same way within minutes of eachother Actual Results: I have attached a sample of the stack trace to illustrate what I am talking about. "Thread-5578" daemon prio=5 tid=0x451210 nid=0x160c runnable [b0d80000..b0d81994] at java.util.AbstractList$Itr.hasNext(AbstractList.java:411) at java.util.AbstractCollection.remove(AbstractCollection.java:249) at org.apache.avalon.excalibur.component.DefaultComponentFactory$ComponentManagerPr oxy.removeUnreleased(DefaultComponentFactory.java:340) - locked <cc07bbb0> (a org.apache.avalon.excalibur.component.DefaultComponentFactory$ComponentManagerPr oxy) at org.apache.avalon.excalibur.component.DefaultComponentFactory$ComponentManagerPr oxy.release(DefaultComponentFactory.java:328) at org.apache.avalon.excalibur.component.ExcaliburComponentManager.release (ExcaliburComponentManager.java:588) at org.apache.cocoon.components.CocoonComponentManager.release (CocoonComponentManager.java:203) at org.apache.avalon.excalibur.component.DefaultComponentFactory$ComponentManagerPr oxy.release(DefaultComponentFactory.java:330) at org.apache.avalon.excalibur.component.DefaultComponentFactory$ComponentManagerPr oxy.release(DefaultComponentFactory.java:330) at org.apache.avalon.excalibur.component.DefaultComponentFactory$ComponentManagerPr oxy.releaseAll(DefaultComponentFactory.java:360) at org.apache.avalon.excalibur.component.DefaultComponentFactory$ComponentManagerPr oxy.access$000(DefaultComponentFactory.java:302) at org.apache.avalon.excalibur.component.DefaultComponentFactory.decommission (DefaultComponentFactory.java:287) at org.apache.avalon.excalibur.pool.ResourceLimitingPool.removePoolable (ResourceLimitingPool.java:508) at org.apache.avalon.excalibur.pool.ResourceLimitingPool.permanentlyRemovePoolable (ResourceLimitingPool.java:458) at org.apache.avalon.excalibur.pool.ResourceLimitingPool.dispose (ResourceLimitingPool.java:417) - locked <cc7da8b0> (a java.lang.Object) at org.apache.avalon.excalibur.component.PoolableComponentHandler.dispose (PoolableComponentHandler.java:208) at org.apache.avalon.excalibur.component.ExcaliburComponentSelector.dispose (ExcaliburComponentSelector.java:211) - locked <cc7fe868> (a org.apache.cocoon.components.treeprocessor.sitemap.ComponentsSelector) at org.apache.avalon.excalibur.component.DefaultComponentFactory.decommission (DefaultComponentFactory.java:280) at org.apache.avalon.excalibur.component.ThreadSafeComponentHandler.dispose (ThreadSafeComponentHandler.java:155) at org.apache.avalon.excalibur.component.ExcaliburComponentManager.dispose (ExcaliburComponentManager.java:227) - locked <cc7fe8d0> (a org.apache.cocoon.components.CocoonComponentManager) at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.dispose (PipelinesNode.java:160) at org.apache.cocoon.components.treeprocessor.TreeProcessor.disposeTree (TreeProcessor.java:398) at org.apache.cocoon.components.treeprocessor.TreeProcessor.setupRootNode (TreeProcessor.java:347) - locked <cc0962e0> (a org.apache.cocoon.components.treeprocessor.TreeProcessor) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process (TreeProcessor.java:326) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process (TreeProcessor.java:293) at org.apache.cocoon.Cocoon.process(Cocoon.java:575) at org.apache.cocoon.servlet.CocoonServlet.service (CocoonServlet.java:999) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke (StandardContext.java:2415) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke (ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service (CoyoteAdapter.java:223) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:261) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604) at org.apache.jk.common.ChannelSocket.processConnection (ChannelSocket.java:562) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:619) at java.lang.Thread.run(Thread.java:536) There are 74 threads with the same output as below (including the sample above) "Thread-79894" daemon prio=5 tid=0x14d6d78 nid=0x13c9b waiting for monitor entry [ad680000..ad681994] at org.apache.cocoon.components.treeprocessor.TreeProcessor.setupRootNode (TreeProcessor.java:339) - waiting to lock <cc0962e0> (a org.apache.cocoon.components.treeprocessor.TreeProcessor) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process (TreeProcessor.java:326) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process (TreeProcessor.java:293) at org.apache.cocoon.Cocoon.process(Cocoon.java:575) at org.apache.cocoon.servlet.CocoonServlet.service (CocoonServlet.java:999) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke (StandardContext.java:2415) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke (ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNex t(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service (CoyoteAdapter.java:223) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:261) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604) at org.apache.jk.common.ChannelSocket.processConnection (ChannelSocket.java:562) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:619) at java.lang.Thread.run(Thread.java:536)