hazelcast / hazelcast-tomcat-sessionmanager

Tomcat Based Web Session Replication
Other
33 stars 37 forks source link

HazelcastSessionManager.findSessions can lead to OOME #83

Closed sertugkaya closed 4 years ago

sertugkaya commented 4 years ago

HazelcastSessionManager.findSessions is used by Tomcat's session expiration task, and it is calling IMap.getAll().values() under the hood.
This can cause an OOME on caller side if the sessionMap is large enough. If our investigation of this method's usage does not indicate any reason to keep this implementation, we can improve this behavior.

at com.hazelcast.client.proxy.ClientMapProxy.getAll(ClientMapProxy.java:1196) [hazelcast-client-3.12.6.jar!/:3.12.6]
at com.hazelcast.session.HazelcastSessionManager.findSessions(HazelcastSessionManager.java:223) [hazelcast-tomcat9-sessionmanager-1.1.5.jar!/:?]
at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:567) [tomcat-embed-core-9.0.27.jar!/:9.0.27]
at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:558) [tomcat-embed-core-9.0.27.jar!/:9.0.27]
at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5539) [tomcat-embed-core-9.0.27.jar!/:9.0.27]
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1353) [tomcat-embed-core-9.0.27.jar!/:9.0.27]
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1357) [tomcat-embed-core-9.0.27.jar!/:9.0.27]
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1357) [tomcat-embed-core-9.0.27.jar!/:9.0.27]
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1335) [tomcat-embed-core-9.0.27.jar!/:9.0.27]

image001 ZD 6145