Hello and apologies in advance for the HTML formatting (not sure how to turn it 
off in outlook web access).

Our tomcat was non-responsive, and catalina.out had several 
'java.lang.OutOfMemory' errors.  So this isn't totally unknown to us (our apps 
leak a bit of memory, plus we're running on a small JVM). 

I tried to shutdown tomcat and it wouldn't die.  

Doing a kill -3 (before the eventual kill -9) I got a thread dump.

Almost all the TP threads look like this: 
---------------------------------------------------------------------
"TP-Processor44" daemon prio=1 tid=0x09667438 nid=0xd95 
in Object.wait() [b2bfe000..b2bff8d8]
at java.lang.Object.wait(Native Method)
- waiting on <0x45251bb0> (a sun.misc.SoftCache)
at java.lang.Object.wait(Object.java:429)
at java.util.ResourceBundle.findBundle(ResourceBundle.java:862)
- locked <0x45251bb0> (a sun.misc.SoftCache)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:730)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:538)
at sun.text.resources.LocaleData$1.run(LocaleData.java:113)
at java.security.AccessController.doPrivileged(Native Method) at 
sun.text.resources.LocaleData.getBundle(LocaleData.java:111)
at sun.text.resources.LocaleData.getDateFormatZoneData(LocaleData.java:107)
at java.text.DateFormatSymbols.cacheLookup(DateFormatSymbols.java:430)
at java.text.DateFormatSymbols.initializeData(DateFormatSymbols.java:468)
at java.text.DateFormatSymbols.<init>(DateFormatSymbols.java:103)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:442)
at org.apache.coyote.tomcat5.CoyoteRequest.<init>(CoyoteRequest.java:151)
at 
org.apache.coyote.tomcat5.CoyoteConnector.createRequest(CoyoteConnector.java:1230)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:131)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)
---------------------------------------------------------------------

So, Tomcat code is waiting for some other code (my code) to release a lock? 

- waiting on <0x45251bb0> (a sun.misc.SoftCache) 

Is that the correct interpretation? 

If so, I'd need to find a stacktrace that contains *my* code that has this 
object locked?  

Because I did find one, but I'm not sure what it's telling me.  Or can anything 
be told, since the VM threw an OOME and now all bets are off?

"www.foo.com <http://www.foo.com>  - /prod/order.jsp?orderID=225" daemon prio=1 
tid=0x080ac938 nid=0x5f1a 
in Object.wait() [b61fd000..b61ff8d8]
 at java.lang.Object.wait(Native Method)
 - waiting on <0x45251bb0> (a sun.misc.SoftCache)
 at java.lang.Object.wait(Object.java:429)
 at java.util.ResourceBundle.findBundle(ResourceBundle.java:862)
 - locked <0x45251bb0> (a sun.misc.SoftCache)
 at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:730)
 at java.util.ResourceBundle.getBundle(ResourceBundle.java:538)
 at sun.text.resources.LocaleData$1.run(LocaleData.java:113)
 at java.security.AccessController.doPrivileged(Native Method)
 at sun.text.resources.LocaleData.getBundle(LocaleData.java:111)
 at sun.text.resources.LocaleData.getDateFormatZoneData(LocaleData.java:107)
 at java.text.DateFormatSymbols.cacheLookup(DateFormatSymbols.java:430)
 at java.text.DateFormatSymbols.initializeData(DateFormatSymbols.java:468)
 at java.text.DateFormatSymbols.<init>(DateFormatSymbols.java:103)
 at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:442)
 at java.util.Date.toString(Date.java:981)
 at java.lang.String.valueOf(String.java:2131)
 at java.lang.StringBuffer.append(StringBuffer.java:370)
 - locked <0x4b94e2e8> (a java.lang.StringBuffer)
 at com.xx.LineItem.setProductionDate(LineItem.java:1181)
 at com.xx.ItemGroup.setProductionDate(ItemGroup.java:1468)
 at com.xx.ItemGroup.addLineItem(ItemGroup.java:126)
 at com.xx.OrderHistory.load(OrderHistory.java:445)
 at com.xx.OrderHistory.<init>(OrderHistory.java:201)
 at org.apache.jsp.prod.order_jsp._jspService(order_jsp.java:174)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at 
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
 at 
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at com.gb.conductor.filters.CommentLogger.doFilter(CommentLogger.java:55)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at com.gb.data.DataSourcePoolFilter.doFilter(DataSourcePoolFilter.java:86)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at com.gb.security.BasicAuthUserFilter.doFilter(BasicAuthUserFilter.java:53)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at com.gb.web.ThreadDebugFilter.doFilter(ThreadDebugFilter.java:44)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at com.gb.web.FileUploadFilter.doFilter(FileUploadFilter.java:89)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
 at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
 at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
 at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
 at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
 at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
 at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
 at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
 at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 at java.lang.Thread.run(Thread.java:534)

 


 

Reply via email to