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)

Reply via email to