struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Boris Morris (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (WW-4058) CLONE - XWork ContainerImpl causes ThreadLocal memory leak
Date Tue, 23 Apr 2013 11:27:20 GMT

     [ https://issues.apache.org/jira/browse/WW-4058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Boris Morris updated WW-4058:
-----------------------------

    Description: 
The localContext ThreadLocal is not cleaned up properly when stopping / undeploying / redeploying
a S2 application. This will in most cases cause the web application ClassLoader not to be
garbage collected, thus leaving a redeployment memory leak.

I am using Tomcat 7.0.39 and when I undeploy my application the following is reported in the
logs:

2013-04-23 12:00:31,082 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,083 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,101 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,101 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,101 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,101 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,102 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,102 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,103 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,103 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,103 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
2013-04-23 12:00:31,103 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.

  was:The localContext ThreadLocal is not cleaned up properly when stopping / undeploying
/ redeploying a S2 application. This will in most cases cause the web application ClassLoader
not to be garbage collected, thus leaving a redeployment memory leak.

    
> CLONE - XWork ContainerImpl causes ThreadLocal memory leak
> ----------------------------------------------------------
>
>                 Key: WW-4058
>                 URL: https://issues.apache.org/jira/browse/WW-4058
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Actions
>    Affects Versions: 2.3.14
>            Reporter: Boris Morris
>            Assignee: Rene Gielen
>
> The localContext ThreadLocal is not cleaned up properly when stopping / undeploying /
redeploying a S2 application. This will in most cases cause the web application ClassLoader
not to be garbage collected, thus leaving a redeployment memory leak.
> I am using Tomcat 7.0.39 and when I undeploy my application the following is reported
in the logs:
> 2013-04-23 12:00:31,082 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,083 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,101 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,101 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,101 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,101 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,102 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,102 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,103 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,103 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,103 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.
> 2013-04-23 12:00:31,103 [request-worker-4] ERROR org.apache.catalina.loader.WebappClassLoader-
The web application [/dev] created a ThreadLocal with key of type [java.lang.ThreadLocal]
(value [java.lang.ThreadLocal@7f2283e1]) and a value of type [com.opensymphony.xwork2.inject.ContainerImpl]
(value [com.opensymphony.xwork2.inject.ContainerImpl@330069fc]) but failed to remove it when
the web application was stopped. Threads are going to be renewed over time to try and avoid
a probable memory leak.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message