Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-3349

0-8/0-10 report failure to reconnect after failover with different exception



    • Bug
    • Status: Resolved
    • Major
    • Resolution: Won't Fix
    • None
    • None
    • Java Tests, JMS AMQP 0-x


      Until QPID-3343, FailoverMethodTest hardcoded use of a same-VM 0-8 broker to perform its testing regardless of the test profile actually in use. This means that even when run with the (old) java.0.10 profile, the test in fact executed the 0-8 code path. This has masked a difference in behaviour between 0-8,0-9, 0-9-1 and 0-10 with regard to the exception used when failover fails to form a new connection:

      0-10 uses a org.apache.qpid.transport.ConnectionException whereas 0-8..0-9-1 uses org.apache.qpid.AMQDisconnectedException.

      FailoverMethodTest assumes that AMQDisconnectedException, so now QPID-3343 has removed the hardcoded 0-8 broker, the test fails on the 0-10 java profiles and cpp. The test has been temporarily disabled in Java010Excludes and CPPExcludes.

      Whilst it would be straightforward to fix the FailoverMethodTest to allow for the different behaviour, it is not clear that this is the best solution. Perhaps it would be better if the same exception were used (if so, which?). Any thoughts??

      0-10 stack trace:

      javax.jms.JMSException: connection aborted
              at org.apache.qpid.client.AMQConnectionDelegate_0_10.closed(AMQConnectionDelegate_0_10.java:303)
              at org.apache.qpid.transport.Connection.closed(Connection.java:577)
              at org.apache.qpid.transport.network.Assembler.closed(Assembler.java:110)
              at org.apache.qpid.transport.network.InputHandler.closed(InputHandler.java:202)
              at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:162)
              at java.lang.Thread.run(Thread.java:662)
      Caused by: org.apache.qpid.transport.ConnectionException: connection aborted
              at org.apache.qpid.transport.Connection.closed(Connection.java:550)


      org.apache.qpid.AMQDisconnectedException: Server closed connection and no failover was successful
              at org.apache.qpid.client.AMQConnection.exceptionReceived(AMQConnection.java:1246)
              at org.apache.qpid.client.failover.FailoverHandler.run(FailoverHandler.java:187)
              at java.lang.Thread.run(Thread.java:662)
      Caused by: org.apache.qpid.AMQDisconnectedException: Server closed connection and no failover was successful
              ... 2 more




            kwall Keith Wall
            kwall Keith Wall
            0 Vote for this issue
            1 Start watching this issue