Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.6.0
-
None
-
Regression
Description
See the discussion by following the link below.
http://activemq.2283324.n4.nabble.com/CMS-3-6-Socket-Descriptor-Leak-With-Failover-td4667966.html
The FailoverTransport.cpp taskRunner includes the FailoverTransport and CloseTransports tasks. The FailoverTransport is added first, and appears to always be pending. This means the taskRunner always executes the iterate on the FailoverTransport and the CloseTransports tasks are never run, which causes a build up of socket descriptors (and threads).
We worked around the issue by adding the CloseTransportsTask to the taskRunner first. This allows the CompositeTaskRunner to iterate the CloseTransportsTask when there is work, and then switching back to iterating the FailoverTransport.