You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Harri Pesonen <ha...@sinch.com> on 2021/09/23 08:36:14 UTC

Possible UpgradeInfo memory leak

Hello, while looking at Tomcat 8.5.61 heap dump in VisualVM, in Dominators by Retained Size, two biggest ones are:

org.apache.tomcat.util.net.NioEndpoint#1  12 382 781 B (13,7%)
org.apache.coyote.http11.upgrade.UpgradeGroupInfo#1  7 066 212 B (7,8%)

I am wondering about UpgradeGroupInfo, because it has very large array of UpgradeInfos:

oname = javax.management.ObjectName#1240 : Catalina:Upgrade=websocket,name="https-jsse-nio-10.8.35.86-8443",type=GlobalRequestProcessor             31 B (0%)          363 B (0%)
upgradeInfos = java.util.ArrayList#10079 : 146 098 elements                         20 B (0%)          7 066 144 B (7,8%)
elementData = java.lang.Object[]#22702 : 160 065 items   640 276 B (0,7%)                        7 066 124 B (7,8%)
[0] = org.apache.coyote.http11.upgrade.UpgradeInfo#1    44 B (0%)          44 B (0%)

Single UpgradeInfo is very small, but there are 146 098 of them.
org.apache.coyote.http11.upgrade.UpgradeInfo                   146 098 (12,8%)

I am not sure what this UpgradeInfo is, it looks like some statistics about upgraded connection, in this case from http to websocket.
To me it looks like these UpgradeInfos are not removed when connection is closed.
Any comments?

Thanks, Harri


Re: Possible UpgradeInfo memory leak

Posted by Mark Thomas <ma...@apache.org>.
On 23/09/2021 09:36, Harri Pesonen wrote:
> Hello, while looking at Tomcat 8.5.61 heap dump in VisualVM, in Dominators by Retained Size, two biggest ones are:
> 
> org.apache.tomcat.util.net.NioEndpoint#1  12 382 781 B (13,7%)
> org.apache.coyote.http11.upgrade.UpgradeGroupInfo#1  7 066 212 B (7,8%)
> 
> I am wondering about UpgradeGroupInfo, because it has very large array of UpgradeInfos:
> 
> oname = javax.management.ObjectName#1240 : Catalina:Upgrade=websocket,name="https-jsse-nio-10.8.35.86-8443",type=GlobalRequestProcessor             31 B (0%)          363 B (0%)
> upgradeInfos = java.util.ArrayList#10079 : 146 098 elements                         20 B (0%)          7 066 144 B (7,8%)
> elementData = java.lang.Object[]#22702 : 160 065 items   640 276 B (0,7%)                        7 066 124 B (7,8%)
> [0] = org.apache.coyote.http11.upgrade.UpgradeInfo#1    44 B (0%)          44 B (0%)
> 
> Single UpgradeInfo is very small, but there are 146 098 of them.
> org.apache.coyote.http11.upgrade.UpgradeInfo                   146 098 (12,8%)
> 
> I am not sure what this UpgradeInfo is, it looks like some statistics about upgraded connection, in this case from http to websocket.
> To me it looks like these UpgradeInfos are not removed when connection is closed.
> Any comments?

Thanks for the report. We are looking into it.

Mark

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