On Dec 11, 2010, at 1:04 PM, "Pid *" <p...@pidster.com> wrote:
> On 11 Dec 2010, at 20:02, Srikanth Konjarla <srikanth.konja...@gmail.com> > wrote: > >> Pid, >> >> Thanks for your patience. Here is the output from catalina.out file >> while the webapp is being undeployed. As you can see there are few >> threadLocals that are cleaned up. >> >> ---------------------------------------------------------------------- >> Dec 10, 2010 8:46:56 PM org.apache.catalina.loader.WebappClassLoader >> clearThreadLocalMap >> SEVERE: A web application created a ThreadLocal with key of type >> [java.lang.ThreadLocal] (value [java.lang.threadlo...@7ee75db3]) and a >> value of type [org.apache.catalina.loader.WebappClassLoader] (value >> [WebappClassLoader >> delegate: false >> repositories: >> /WEB-INF/classes/ >> ----------> Parent Classloader: >> org.apache.catalina.loader.standardclassloa...@1eb3319f >> ]) but failed to remove it when the web application was stopped. To >> prevent a memory leak, the ThreadLocal has been forcibly removed. > > The above means that something is storing the WebappClassLoader in a > ThreadLocal. Is your app doing this? > > The two below I know about and I believe are defects in Axis 1.4. The only component that uses threadlocals in my app is Axis and I believe it is not cleaning up after completely. Originally, I have started on tracking down Axis threads that are responsible. In this case, Axis is performing webservice client operations. Srikanth > > > p > >> Dec 10, 2010 8:46:56 PM org.apache.catalina.loader.WebappClassLoader >> clearThreadLocalMap >> SEVERE: A web application created a ThreadLocal with key of type >> [java.lang.ThreadLocal] (value [java.lang.threadlo...@7ee75db3]) and a >> value of type [org.apache.catalina.loader.WebappClassLoader] (value >> [WebappClassLoader >> delegate: false >> repositories: >> /WEB-INF/classes/ >> ----------> Parent Classloader: >> org.apache.catalina.loader.standardclassloa...@1eb3319f >> ]) but failed to remove it when the web application was stopped. To >> prevent a memory leak, the ThreadLocal has been forcibly removed. >> Dec 10, 2010 8:46:56 PM org.apache.catalina.loader.WebappClassLoader >> clearThreadLocalMap >> SEVERE: A web application created a ThreadLocal with key of type >> [org.apache.xml.security.utils.UnsyncByteArrayOutputStream$1] (value >> [org.apache.xml.security.utils.unsyncbytearrayoutputstrea...@775d1479]) >> and a value of type [byte[]] (value [...@5faeed4]) but failed to remove >> it when the web application was stopped. To prevent a memory leak, the >> ThreadLocal has been forcibly removed. >> Dec 10, 2010 8:46:56 PM org.apache.catalina.loader.WebappClassLoader >> clearThreadLocalMap >> SEVERE: A web application created a ThreadLocal with key of type >> [org.apache.axis.utils.XMLUtils.ThreadLocalDocumentBuilder] (value >> [org.apache.axis.utils.xmlutils$threadlocaldocumentbuil...@3a0ee334]) >> and a value of type [org.apache.xerces.jaxp.DocumentBuilderImpl] (value >> [org.apache.xerces.jaxp.documentbuilderi...@61583db6]) but failed to >> remove it when the web application was stopped. To prevent a memory >> leak, the ThreadLocal has been forcibly removed. >> ------------------------------------------------------------------------ >> >> Srikanth >> >> On 12/11/10 2:26 AM, Pid wrote: >>> On 12/11/10 9:25 AM, Srikanth Konjarla wrote: >>>> >>>> >>>> On Dec 11, 2010, at 1:18 AM, "Pid *" <p...@pidster.com> wrote: >>>> >>>>> On 11 Dec 2010, at 01:07, Srikanth Konjarla <srikanth.konja...@gmail.com> >>>>> wrote: >>>>> >>>>>> BTW, I see some similarities with the following. >>>>>> >>>>>> https://jira.springframework.org/browse/SWS-533 >>>>> >>>>> Similarities in which sense? >>>>> The issue was closed as invalid. >>>> The similarity is that the thread is retained. >>> >>> This is not a problem. The threads exist in a pool and are reused. >>> >>> Chuck explained why the WAIT status isn't a problem. >>> >>> However, other than the case is invalid it does not provide detail why >>> it is invalid and why the thread is in WAIT state. >>> >>> Yes, it does. It also refers to JAXB, not Axis. So it's unrelated to >>> your problem. >>> >>> If the thread is reused by tomcat, what happened to the references from >>> previous cycle. >>> >>> Which references? The ThreadLocals? >>> >>> If a ThreadLocal is created by an application, but not cleaned up, the >>> thread still contains the reference in the internal map of ThreadLocals. >>> If the reference is to a class from a webapp which is subsequently >>> unloaded, then the classloader will not be garbage collected. >>> >>> >>> I would be interested in learning. >>> >>> PLEASE post the leak warnings from your logs. >>> >>> >>> p >>> >>> >>> >>>>> You're using Axis 1.4 which I've been looking at recently, because I >>>>> believe it causes a leak. >>>> I believe the same but wanted to make sure that leaking threads are >>>> captured and cleaned during the undeploy process. Additionally, I was >>>> wondering how I can detect and locate runaway Axis threads with thread >>>> locals. >>>>> >>>>> Please post the warnings from your logs so I can see of it's the same >>>>> problem. >>>> Will do. >>>> >>>> Srikanth >>>>> >>>>> >>>>> p >>>>> >>>>>> >>>>>> Srikanth >>>>>> >>>>>> On 12/10/10 3:41 PM, Caldarale, Charles R wrote: >>>>>>>> From: Srikanth Konjarla [mailto:srikanth.konja...@gmail.com] >>>>>>>> Subject: Re: 6.0.26 java.lang.Thread.State: WAITING (on object monitor) >>>>>>> >>>>>>>> as part of the thread local cleanup process at the time of undeploy, >>>>>>>> tomcat removes few threadLocals but misses the threadLocals for the >>>>>>>> thread in question. I am wondering about the tomcat thread still being >>>>>>>> in "WAIT" mode and been cleaned up. >>>>>>> >>>>>>> The WAIT mode is normal - the thread is sitting in the pool, waiting >>>>>>> for a request to show up. I believe the ThreadLocal objects are >>>>>>> discarded by letting such infected threads exit and creating new ones. >>>>>>> That's an area still undergoing refinement, so you might want to try >>>>>>> moving up to 6.0.29 and see if it makes any difference. Or try sending >>>>>>> in enough concurrent requests to get all the threads busy and see if >>>>>>> the references disappear after that. >>>>>>> >>>>>>> - Chuck >>>>>>> >>>>>>> >>>>>>> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE >>>>>>> PROPRIETARY MATERIAL and is thus for use only by the intended >>>>>>> recipient. If you received this in error, please contact the sender and >>>>>>> delete the e-mail and its attachments from all computers. >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org >>>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>>>>> For additional commands, e-mail: users-h...@tomcat.apache.org >>>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>>>> For additional commands, e-mail: users-h...@tomcat.apache.org >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>>> For additional commands, e-mail: users-h...@tomcat.apache.org >>>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org