[ 
https://issues.apache.org/jira/browse/AMQCPP-487?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kevin Urciolo updated AMQCPP-487:
---------------------------------

    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.

  was:
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 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.

    
> CMS FailoverTransport Leaks Socket Descriptors
> ----------------------------------------------
>
>                 Key: AMQCPP-487
>                 URL: https://issues.apache.org/jira/browse/AMQCPP-487
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Transports
>    Affects Versions: 3.6.0
>            Reporter: Kevin Urciolo
>            Assignee: Timothy Bish
>
> 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.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to