tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 31510] New: - Memory leaks due to JspWriterImpl keeping reference to ServletResponse after recycle()
Date Sat, 02 Oct 2004 14:12:49 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=31510>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=31510

Memory leaks due to JspWriterImpl keeping reference to ServletResponse after recycle()

           Summary: Memory leaks due to JspWriterImpl keeping reference to
                    ServletResponse after recycle()
           Product: Tomcat 5
           Version: 5.0.28
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Jasper
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: ayud@mail.ru


This problem causes severe memory leaks in JBoss app server with Jetty servlet 
container installed (that is using Jasper). I tested it with JBoss 3.2.6RC1 and 
Jetty 5.0.0. Please see related bug reports: https://sourceforge.net/tracker/?
func=detail&aid=973162&group_id=22866&atid=376685 and 
https://sourceforge.net/tracker/?
func=detail&aid=1038066&group_id=7322&atid=107322. In short, after JBoss web 
application context is destroyed, there is still a hard reference chain (see 
http://kanika.yi.org/~alexei/jbossleaks/refs-from-jasper5-PageContext-pool-to-
UnifiedClassLoader3.html) from Jasper's pool of JspContexts to JBoss' 
UnifiedClassLoader3. The most logical place to break the chain is, in my 
opinion, to set org.apache.jasper.runtime.JspWriterImpl.response field to null 
inside JspWriterImpl.recycle() method. It looks safe, because JspWriterImpl is 
always initialized with a new response object before use. And it looks logical, 
because why should a recycled JspWriter keep reference to a response which it 
will never make use of, being recycled. In my test instalation, adding 

response = null;

to JspWriterImpl.recycle() resolves the problem.

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


Mime
View raw message