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.