On 12/12/10 8:28 AM, Pid * wrote:
> On 11 Dec 2010, at 21:39, Srikanth Konjarla <srikanth.konja...@gmail.com> 
> wrote:
> 
>>
>> 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.
> 
> I agree.
> 
>> Originally, I have started on tracking down Axis threads that are 
>> responsible. In this case, Axis is performing webservice client operations.
> 
> Then you are also seeing an additional problem - namely that the
> classloader itself is being stored in a threadlocal. I haven't seen
> Axis do that so far.
You are correct. I think it is Spring framework (also used in the
application) that is storing classloader in threadlocal. BTW, do you
have any suggestions on where/how to track Axis threads so that I can
clean them up from my app?

Thanks

Srikanth

> 
> You may need to use a newer version of Axis - I don't think v1 is
> expected to do any more releases.
> 
> 
> p
> 
> 
>> 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
>>
> 
> ---------------------------------------------------------------------
> 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

Reply via email to