You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Aidan Skinner (JIRA)" <qp...@incubator.apache.org> on 2008/05/07 15:28:56 UTC

[jira] Resolved: (QPID-951) Qpid .Net Failover in does not work.

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

Aidan Skinner resolved QPID-951.
--------------------------------

       Resolution: Fixed
    Fix Version/s: M2.1
         Assignee: Aidan Skinner

> Qpid .Net Failover in does not work.
> ------------------------------------
>
>                 Key: QPID-951
>                 URL: https://issues.apache.org/jira/browse/QPID-951
>             Project: Qpid
>          Issue Type: Bug
>          Components: Dot Net Client
>    Affects Versions: M2, M2.1
>            Reporter: Martin Ritchie
>            Assignee: Aidan Skinner
>             Fix For: M2.1
>
>
> Summary:
> There seems to be a problem with failover in .NET clients.
> 16:53:13,227 INFO [5016] : AMQConnection : Stopping old heartbeat thread
> 16:53:13,227 INFO [5016] : AMQProtocolListener : Session closed called with failover state currently NOT_STARTED
> 16:53:13,227 INFO [5016] : FailoverPolicy : Failover method timeout
> 16:53:13,227 DEBUG [5016] : FailoverPolicy : All failover methods exhausted
> 16:53:13,227 INFO [5016] : AMQProtocolListener : Failover not allowed by policy.
> 16:53:13,227 INFO [5016] : AMQProtocolListener : sessionClose() not allowed to failover
> Steps to Reproduce:
> Running the existing FailoverTest.cs will not highlight this problem unless you wait > 4minutes from the initial Connection to the point where the failover occurs.  
> To reproduce run test and wait 5minutes before killing first broker
> Expected Results:
> Failover should succeed
> Actual Results:
> Failover is shown to timeout
> Defect Identification:
> The _failoverPolicy.failoverAllowed() method has a side-effect of recording time between calls to ensure failover can be stopped.
> This is stopped by called _failoverPolicy.connectionAttained()
> However the failoverAllowed() method is being called after connectionAttained() which is a change to the Java version and so not a direct port of the failover handling.
> The calls to failoverAllowed() after the while loop should be removed and the use of the _connected boolean utilised instead. Comparison to the Java client should be made.
> Proposed Changes:
> Replace calls to failoverAllowed() with _connected much like how the Java client has been changed.
> Alternative is to remove the 4 minute failover timeout as has been done on the Java : QPID-786
> Test Strategy:
> Update the FailoverTest.cs to run with a test that runs for 5minutes.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.