-
Bug
-
Resolution: Done
-
Major
-
None
-
False
-
None
-
False
-
-
-
-
-
-
+
-
-
When there is a conflict between session expiration in the node which has the primary cache, and a long-running request in the node which has the back-up cache, it causes a memory leak.
Session W-Jks1elbgEXw_Kkhw7x4SPTLJS120KPGwTgi8zD is not removed from the cache even if the session timeout is exceeded in the following scenarios:
// test application session-test.war is attached on this ticket $ session-test.war jboss-eap-7.4-node1/standalone/deployment/ $ session-test.war jboss-eap-7.4-node2/standalone/deployment/ // start 2 nodes JBoss EAP 7.4.18 cluster $ jboss-eap-7.4-node1/bin/standalone.sh -Djboss.node.id=node1 -c standalone-ha.xml $ jboss-eap-7.4-node2/bin/standalone.sh -Djboss.node.id=node2 -Djboss.socket.binding.port-offset=100 -c standalone-ha.xml // start new session on node1, the session-timeout is 1 minute $ curl -v 127.0.0.1:8080/session-test/count ... < HTTP/1.1 200 OK < Connection: keep-alive < Set-Cookie: JSESSIONID=W-Jks1elbgEXw_Kkhw7x4SPTLJS120KPGwTgi8zD.node1; path=/session-test < Content-Type: text/plain;charset=utf-8 < Content-Length: 55 < Date: Mon, 02 Sep 2024 09:57:10 GMT < count: 1, id=W-Jks1elbgEXw_Kkhw7x4SPTLJS120KPGwTgi8zD // send a long-running request to node2, with JSESSIONID=W-Jks1elb... Stickey session is intentionally broken in this scenario $ curl -v -b JSESSIONID=W-Jks1elbgEXw_Kkhw7x4SPTLJS120KPGwTgi8zD.node1 127.0.0.1:8180/session-test/count?slow=true // SessionMetadata is not removed from the cache after a long-running request is completed // if node1 restarts or send a request to node1 with the expired session id, the session will be removed from the cache $ jmap -histo:live <jvm-pid-of-node1> | grep -e SimpleSessionAccessMetaData -e SimpleSessionCreationMetaData 5222: 1 32 org.wildfly.clustering.web.cache.session.SimpleSessionCreationMetaData 6420: 1 24 org.wildfly.clustering.web.cache.session.SimpleSessionAccessMetaData
- relates to
-
WFLY-15088 With transactional cache, expiration scheduling reads out of date maxInactiveInterval value changed on non-primary owner
- Closed