tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Milo Meerkat" <>
Subject Tomcat 6.0.29 - deadlocks when loading shared classes
Date Mon, 23 Aug 2010 14:52:59 GMT

- Debian GNU/Linux 
- Java 1.6.0_21-b06 
- Tomcat  6.0.29 

I got the error below when upgrading tomcat 5.5.29 to tomcat 6.0.29. 
When we upgraded we noticed that tomcat 6 does not like if we have a xerces implementation
in each webapp in the tomcat instance (tomcat 5 is fine with this), so we placed the following
jars in a common tomcat library (catalina property "shared.loader"): 

- serializer-2.7.1.jar 
- xalan-2.7.1.jar 
- xercesImpl-2.9.1.jar 
- xmlParserAPIs-2.6.2.jar 

This worked well locally and in our staging environment, but when we upgraded our production
environment, we started getting thread deadlocks, and the load reached 20 in "top". 
Normally with tomcat 5.5 the server runs with load 2-3. 

We tried downgrading to tomcat 6.0.26, and we tried having only one webapp in the tomcat instance,
with the four XML jars in the webapp (WEB-INF/lib), not in the shared lib. Didn't work. When
we downgraded to tomcat 5.5 again, everything was back to normal. 

Does anyone know what I'm doing wrong here? Or is there a classloader bug in tomcat 6? 



"TP-Processor93" daemon prio=10 tid=0x00007f2f92613800 nid=0x462f waiting for monitor entry
java.lang.Thread.State: BLOCKED (on object monitor) 
at org.apache.catalina.loader.WebappClassLoader.loadClass( 
- waiting to lock <0x00007f2fb0e575b0> (at org.apache.catalina.loader.WebappClassLoader)

at org.apache.catalina.loader.WebappClassLoader.loadClass( 
at javax.xml.xpath.XPathFactoryFinder.createClass( 
at javax.xml.xpath.XPathFactoryFinder.loadFromService( 
at javax.xml.xpath.XPathFactoryFinder._newFactory( 
at javax.xml.xpath.XPathFactoryFinder.newFactory( 
at javax.xml.xpath.XPathFactory.newInstance( 
at javax.xml.xpath.XPathFactory.newInstance( 
at sun.reflect.GeneratedMethodAccessor512.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke( 
at java.lang.reflect.Method.invoke( 
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(

at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(

at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message