https://bz.apache.org/bugzilla/show_bug.cgi?id=64848

--- Comment #6 from Laszlo Karolyi <laszlo.peter.karo...@gmail.com> ---
After re-testing the reported scenario with 9.0.39 Tomcat version (core +
websocket) the WsSession objects still seem to get stuck on the heap.

Upon investigating the Tomcat source code a bit deeper it's not entirely clear
how a particular Processor can be removed from the waitingProcessors set
located in Http11NioProtocol class (more accurately in its heir,
AbstractProtocol). According to the heap dump snapshot enclosed with the
original report, a WsSession object is held by a WsHttpUpgradeHandler object
that is used within UpgradeProcessorInternal class. UpgradeProcessorInternal
inherits from Processor, the type whose objects seem stored in
waitingProcessors.

If sending a message block fails in WsRemoteEndpointImplBase during the
invocation of writeMessagePart() method (as the referred
https://github.com/apache/tomcat/commit/5707895bafa38c1443460356a268932a967b79e9
pull request also contains) then even though the WebSocket session gets closed
followed by re-throwing of the caught exception, does it mean that the
WsHttpUpgradeHandler object associated to the closed WebSocket session should
eventually be purged from the above mentioned waitingProcessors set too?
In other words, under which conditions should a Processor be removed from
waitingProcessors?

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to