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

DerbyStore does not persist queue exclusivity or arguments

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • M3, M4, 0.5, 0.6
    • 0.7
    • Broker-J

    Description

      Whilst investigating enabling the tests in qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ct/DurableSubscriberTest.java to run against the Java broker, it was observed (stacktrace below) that after restarting the broker it was not possible to recreate a durable subscription as the recovered queue had lost its exclusivity during the restart process, and the client connected via 0-91 was unable to redeclare the queue as a result of an exclusivity mismatch between the request and the existing queue.

      Investigating this has found this to be bec ause we dont persist the queue exclusivity as set in the QueueDeclare body. The DebyStore also does not persist the queue arguments it is given.

      Error registering consumer: org.apache.qpid.AMQChannelClosedException: Error: Cannot re-declare queue 'clientid:dursub' with different exclusivity (was: false requested true) [error code 405: Already exists] [error code 405: Already exists]
      javax.jms.JMSException: Error registering consumer: org.apache.qpid.AMQChannelClosedException: Error: Cannot re-declare queue 'clientid:dursub' with different exclusivity (was: false requested true) [error code 405: Already exists] [error code 405: Already exists]
      at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:1800)
      at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:1744)
      at org.apache.qpid.client.AMQConnectionDelegate_8_0.executeRetrySupport(AMQConnectionDelegate_8_0.java:290)
      at org.apache.qpid.client.AMQConnection.executeRetrySupport(AMQConnection.java:765)
      at org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102)
      at org.apache.qpid.client.AMQSession.createConsumerImpl(AMQSession.java:1742)
      at org.apache.qpid.client.AMQSession.createConsumer(AMQSession.java:911)
      at org.apache.qpid.client.AMQSession_0_8.createDurableSubscriber(AMQSession_0_8.java:502)
      at org.apache.qpid.client.AMQTopicSessionAdaptor.createDurableSubscriber(AMQTopicSessionAdaptor.java:73)
      <snip>

      Attachments

        Activity

          People

            robbie Robbie Gemmell
            robbie Robbie Gemmell
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: