You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2017/11/28 02:35:14 UTC
[Bug 61825] New: Tomcat8.0.30 Async request happend memory leak
https://bz.apache.org/bugzilla/show_bug.cgi?id=61825
Bug ID: 61825
Summary: Tomcat8.0.30 Async request happend memory leak
Product: Tomcat 8
Version: 8.0.30
Hardware: All
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Connectors
Assignee: dev@tomcat.apache.org
Reporter: ronxin999@163.com
Target Milestone: ----
Created attachment 35557
--> https://bz.apache.org/bugzilla/attachment.cgi?id=35557&action=edit
the Http11ConnectionHandler concurrentHashmap contain too may request
I am use tomcat8.0.30,use the async function,programe running a fews day,
found the full gc is runnig all the time,but memory is not clean up,i dump the
memory analyse by eclipse mat found the follow result:
Request,Response,Nio2Channels and so an,the object is top big object.
19,289 instances of "org.apache.tomcat.util.net.Nio2Channel", loaded by
"java.net.URLClassLoader @ 0x730cc4d58" occupy 319,430,000 (11.05%) bytes.
These instances are referenced from one instance of
"java.util.concurrent.ConcurrentHashMap$Segment[]", loaded by "<system class
loader>"
Keywords
one
19,488 instances of "org.apache.catalina.connector.Response", loaded by
"java.net.URLClassLoader @ 0x730cc4d58" occupy 493,942,352 (17.09%) bytes.
These instances are referenced from one instance of "java.lang.Object[]",
loaded by "<system class loader>"
two:
19,488 instances of "org.apache.catalina.connector.Request", loaded by
"java.net.URLClassLoader @ 0x730cc4d58" occupy 474,043,792 (16.40%) bytes.
These instances are referenced from one instance of "java.lang.Object[]",
loaded by "<system class loader>"
three:
19,289 instances of "org.apache.tomcat.util.net.Nio2Channel", loaded by
"java.net.URLClassLoader @ 0x730cc4d58" occupy 319,430,000 (11.05%) bytes.
These instances are referenced from one instance of
"java.util.concurrent.ConcurrentHashMap$Segment[]", loaded by "<system class
loader>"
all memory size is 2.1G,tomcat async request and response and Nio2Channel
occupy 1.8G memory,maybe the Nio2Channel,has a concurrentHashMap,the map
reflence too may Http11Nio2Processor
My switch the request to other server,the tomcat async request and response is
can't clean by gc,so i guess the tomcat is memory leak may be.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
[Bug 61825] Tomcat8.0.30 Async request happend memory leak
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61825
Mark Thomas <ma...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |WORKSFORME
Status|NEEDINFO |RESOLVED
--- Comment #7 from Mark Thomas <ma...@apache.org> ---
This does look like a Tomcat bug but likely one that was fixed in 8.0.38 (look
in the changelog for deadlock).
Absent a test case that demonstrates this issue, I'm going to assume that this
is fixed in the latest 8.0.x.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
[Bug 61825] Tomcat8.0.30 Async request happend memory leak
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61825
--- Comment #2 from Gavin.peng <ro...@163.com> ---
the asyncState all is COMPLETING of the all async request asyncstateMachine,why
is not end after timeout by tomcat container
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
[Bug 61825] Tomcat8.0.30 Async request happend memory leak
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61825
--- Comment #3 from Gavin.peng <ro...@163.com> ---
Created attachment 35559
--> https://bz.apache.org/bugzilla/attachment.cgi?id=35559&action=edit
the async request asyncStateMachine state
all the async request the statemachine is completing
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
[Bug 61825] Tomcat8.0.30 Async request happend memory leak
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61825
Christopher Schultz <ch...@christopherschultz.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |NEEDINFO
--- Comment #4 from Christopher Schultz <ch...@christopherschultz.net> ---
If you are actually running Tomcat 8.0.30, please upgrade to latest Tomcat
8.0.47. There have been MANY improvements to async features, including a few
that max fix memory leaks like the one you describe.
Please note that the Tomcat project does not issue patches for individual
issues; instead, we produce new releases with new version numbers. Tomcat
8.0.47 should be drop-in compatible with Tomcat 8.0.30.
You should also consider upgrading to Tomcat 8.5.x for longer-term support.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
[Bug 61825] Tomcat8.0.30 Async request happend memory leak
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61825
--- Comment #6 from Christopher Schultz <ch...@christopherschultz.net> ---
I'm sorry, I'm no expert on servlet-async so I'm not sure how to answer your
question. If there are changes to the async state-machine in Tomcat, those
changes will have been made in order to align Tomcat with the published
standard, so your product should not have to be customized in any way to work
with Tomcat (versus any other Java application server).
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
[Bug 61825] Tomcat8.0.30 Async request happend memory leak
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61825
--- Comment #5 from Gavin.peng <ro...@163.com> ---
Thanks Christopher Schultz,I have a question,if i use 8.0.47,if the async is
timeout,I need to invoke complete method ? i understand is not ,tomcat contain
is end the async request if timeout is happend,thanks you
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
[Bug 61825] Tomcat8.0.30 Async request happend memory leak
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61825
--- Comment #1 from Gavin.peng <ro...@163.com> ---
Created attachment 35558
--> https://bz.apache.org/bugzilla/attachment.cgi?id=35558&action=edit
request and response is not release maybe the concurrenthashmap reflence
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org