Hi, I was recently hunting what I thought to be a memory leak in our application. What happens is that the Old Gen Space is running full at once and then tomcat freezes because java is busy with Full GC all the time. I've managed to create a memory dump shortly before the crash and the top5 looked like that:
14481362 instances of class org.apache.tomcat.util.buf.ByteChunk 14471293 instances of class org.apache.tomcat.util.buf.CharChunk 14464658 instances of class org.apache.tomcat.util.buf.MessageBytes 7113296 instances of class org.apache.tomcat.util.http.MimeHeaderField 7080192 instances of class javax.servlet.http.Cookie Other classes looked as normal (I was making jmap histograms all the time and comparing). Now, the funny thing is that all that data was bound to ONE request. I checked the manager status page previously and it showed only one active request, but lasting more than 5 hours: S 18757746 ms 0 KB 0 KB XXX.XXX.XXX.XXX www.site.com POST /searchboxright.html?linkId=XXX|SearchBoxRight|NA| HTTP/1.1 By analyzing the dump I found that all MimeHeaderFields were in one large array belonging to one response object, belonging to the request, with remote ip equal to the XXX.XXX.XXX.XXX ip of the request in the manager. I understand that sicne the request lasted 5 hours all the data went into old space filling it out and causing the problem, but HOW can it actually happen that a response object contains 8.000.000 mime headers? regards Leon --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org