Qpid .Net Failover in does not work.
------------------------------------

                 Key: QPID-951
                 URL: https://issues.apache.org/jira/browse/QPID-951
             Project: Qpid
          Issue Type: Bug
    Affects Versions: M2, M2.1
            Reporter: Martin Ritchie


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.

Reply via email to