cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rottmann, Lars" <Lars.Rottm...@vodafone.com>
Subject Cocoon 2.1.3 breakdown when load testing
Date Mon, 05 Jan 2004 12:46:56 GMT

Hello everybody,

we are currently migrating from a rather old development version of Cocoon
(december 2002) to the latest stable release 2.1.3. The increase in
performance is awesome, but unfortunately we are facing reproducable faulty
behaviour when load testing the actual version. After delivering roughly
20000+ pages without an error, the server starts sending back error pages
with status code 500.

This is the configuration we use for testing: Sun Fire V480 (OS 5.8) with 2x
900 MHz, 4 GB RAM, Cocoon 2.1.3 (with Xalan as XSLT processor), Jetty
4.2.12, Sun Java 1.4.2_02-b03. 
We do the load testing with the tool "Siege" (version 2.56) with 40
concurrent users requesting 2000 pages each.

I traced down the problem to the ExcaliburComponentManager or its adjacent
classes. The end is near when the warning message below is popping up in the
log files. Mostly it is the TransformerSelector that could not be looked up
(a null value is returned), but I also saw the same message in conjunction
with the SerializerSelector in another run. The effect is the same. The ECM
tries to set up new instances of all Selectors but with an empty
DefaultConfiguration object. This leads to failures in all subsequent
lookups of the TraxTransformer in the case below. All pages involving XSLT
transformations will fail including the error pipeline itself, though
delivery of images is not affected. 

I suppose that this problem is a concurrency or threading issue. Disabling
one the cpus of the server, switching between several versions of the JVM,
disabling the "use-store" feature, increasing pool sizes of the sitemap
components etc. didn't solve it. Interestingly I couldn't reproduce the
errors on my Linux development box, it only showed up in production-like
environment.

I hacked the ECM doing a second lookup attempt after waiting 10ms and almost
everytime the second try was successful. When additionaly prohibiting
re-instantiation of the org.apache.cocoon.*.*Selector classes I managed to
run a test with more than 7 million requests in a timeframe of about 10
hours constantly penetrating the server with 40+ users without breaking
Cocoon.

Has anyone an idea? Any help is really appreciated. Thanks alot in advance!

Best regards

Lars


--------- Logs -----------------

WARN    (2003-12-17) 03:52.24:043   [sitemap] (/vsky/index.preg)
wap-18/ExcaliburComponentManager: ComponentLocator exception from parent CM
during lookup.
org.apache.avalon.framework.component.ComponentException: Could not find
component (key [org.apache.cocoon.transformation.TransformerSelector])
        at
org.apache.avalon.excalibur.component.ExcaliburComponentManager.lookup(Excal
iburComponentManager.java:297)
        at
org.apache.cocoon.components.CocoonComponentManager.lookup(CocoonComponentMa
nager.java:324)
        at
org.apache.avalon.excalibur.component.ExcaliburComponentManager.lookup(Excal
iburComponentManager.java:226)
        at
org.apache.cocoon.components.CocoonComponentManager.lookup(CocoonComponentMa
nager.java:324)
        at
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.addTransfor
mer(AbstractProcessingPipeline.java:283)
        at
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline
.addTransformer AbstractCachingProcessingPipeline.java:167)
        at
org.apache.cocoon.components.treeprocessor.sitemap.TransformNode.invoke(Tran
sformNode.java:94)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:84)
        at
org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTyp
eNode.java:176)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:108)
        at
org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNod
e.java:66)
        at
org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.
java:128)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:108)
        at
org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectN
ode.java:138)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:84)
        at
org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTyp
eNode.java:176)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:84)
        at
org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTyp
eNode.java:176)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:108)
        at
org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNod
e.java:66)
        at
org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.
java:128)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:84)
        at
org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTyp
eNode.java:176)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:108)
        at
org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNod
e.java:66)
        at
org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.
java:128)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:84)
        at
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invok
e(PreparableMatchNode.java:164)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:108)
        at
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(Pipel
ineNode.java:163)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:108)
        at
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(Pipe
linesNode.java:152)
        at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcess
or.java:354)
        at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcess
or.java:307)
        at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
        at
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
        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(WebApplicationHandl
er.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.mortbay.http.HttpConnection.service(HttpConnection.java:783)
        at
org.mortbay.http.ajp.AJP13Connection.handleNext(AJP13Connection.java:273)
        at org.mortbay.http.HttpConnection.handle(HttpConnection.java:800)
        at
org.mortbay.http.ajp.AJP13Listener.handleConnection(AJP13Listener.java:204)
        at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
        at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:454)



DEBUG   (2003-12-17) 03:52.24:069   [sitemap] (/vsky/index.preg)
wap-18/ExcaliburComponentManager: Could not find ComponentHandler,
attempting to create one for role
[org.apache.cocoon.transformation.TransformerSelector]
DEBUG   (2003-12-17) 03:52.24:071   [sitemap] (/vsky/index.preg)
wap-18/DefaultComponentFactory: ComponentFactory creating new instance of
org.apache.cocoon.components.treeprocessor.sitemap.ComponentsSelector.

DEBUG   (2003-12-17) 03:52.24:074   [sitemap] (/vsky/index.preg)
wap-18/DefaultComponentFactory: no logger attribute available, using
standard logger
DEBUG   (2003-12-17) 03:52.24:075   [sitemap] (/vsky/index.preg)
wap-18/DefaultRoleManager: looking up shorthand , returning null
DEBUG   (2003-12-17) 03:52.24:075   [sitemap] (/vsky/index.preg)
wap-18/ComponentsSelector: Setting up sitemap component selector for null
(role id = -1)
DEBUG   (2003-12-17) 03:52.24:076   [sitemap] (/vsky/index.preg)
wap-18/DefaultRoleManager: looking up shorthand , returning null
DEBUG   (2003-12-17) 03:52.24:076   [sitemap] (/vsky/index.preg)
wap-18/ExcaliburComponentSelector: ComponentSelector setting up with root
element:
DEBUG   (2003-12-17) 03:52.24:076   [sitemap] (/vsky/index.preg)
wap-18/DefaultRoleManager: looking up shorthand , returning null
DEBUG   (2003-12-17) 03:52.24:077   [sitemap] (/vsky/index.preg)
wap-18/ThreadSafeComponentHandler: ComponentHandler initialized for:
org.apache.cocoon.components.treeprocessor.sitemap.ComponentsSelector
DEBUG   (2003-12-17) 03:52.24:077   [sitemap] (/vsky/index.preg)
wap-18/ExcaliburComponentSelector: UnnamedSelector: ComponentSelector could
not find the component for hint [xslt]

INFO    (2003-12-17) 03:52.24:105   [sitemap] (/vsky/index.preg)
wap-18/HandleErrorsNode: Processing handle-errors at
file:/apps/DE/vsky/vsky30-20031204/webapp/sitemap.xmap:1225:24



Vodafone Global Content Services Limited 
Registered Office:  Vodafone House, The Connection, Newbury, Berkshire  RG14 2FN

Registered in England No. 4064873 

This e-mail is for the addressee(s) only.  If you are not an addressee, you
must not distribute, disclose, copy, use or rely on this e-mail or its
contents, and you must immediately notify the sender and delete this e-mail
and all copies from your system.  Any unauthorised use may be unlawful.  The
information contained in this e-mail is confidential and may also be legally
privileged.


Mime
View raw message