Qpid
  1. Qpid
  2. QPID-5060

[C++ broker] Topic created as durable contains the durable=true in properties without having any effect on the subscription queues

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 0.24
    • Fix Version/s: 0.24
    • Component/s: C++ Broker
    • Labels:
      None
    • Environment:

      CentOS 6.4, Qpid 0.24 RC1, Proton 0.4

      Description

      A durable topic can be created with the qpidt utility by specifinfg the "durable=true" option, e.g.:

      qpidt create topic x durable=true exchange=response qpid.max_count=1000 qpid.max_size=1000000 qpid.policy_type=ring

      That creates a topic which is indeed durable, but also contains the durable flag in the properties:

      {{Object of type: org.apache.qpid.broker:topic:_data(6182b36f-9f09-4118-2881-fb69e5355628)
      Attribute 165
      ======================================================================================================================================================
      name x
      exchangeRef 145
      durable True
      properties

      {u'qpid.max_size': u'1000000', *u'durable': u'true'*, u'qpid.policy_type': u'ring', u'qpid.max_count': u'1000', u'exchange': u'response'}

      }}

      This might be confusing because the durable property is not propagated to the subscription queues created from this topic. To avoid the confusion, the durable option should not be added to the properties.

        Activity

        Justin Ross made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Hide
        Justin Ross added a comment -
        Show
        Justin Ross added a comment - Released in Qpid 0.24, http://qpid.apache.org/releases/qpid-0.24/index.html
        Gordon Sim made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 0.24 [ 12324776 ]
        Resolution Fixed [ 1 ]
        Hide
        ASF subversion and git services added a comment -

        Commit 1512417 from Gordon Sim in branch 'qpid/branches/0.24'
        [ https://svn.apache.org/r1512417 ]

        QPID-5060: remove exchange and durable for properties map, as they apply to topic itself rather than queue and are tracked by explicit properties (merged from r1512245)

        Show
        ASF subversion and git services added a comment - Commit 1512417 from Gordon Sim in branch 'qpid/branches/0.24' [ https://svn.apache.org/r1512417 ] QPID-5060 : remove exchange and durable for properties map, as they apply to topic itself rather than queue and are tracked by explicit properties (merged from r1512245)
        Hide
        Justin Ross added a comment -

        Reviewed by Mick. Approved for 0.24.

        Show
        Justin Ross added a comment - Reviewed by Mick. Approved for 0.24.
        Hide
        michael goulish added a comment -

        review:

        makes sense: since exchange name & durability properties are not propagated to subscription queues created on this topic, those properties should not be set on the topic – otherwise, it's confusing. This change filters them out.

        Nihil Obstat. Imprimatur.

        Show
        michael goulish added a comment - review: makes sense: since exchange name & durability properties are not propagated to subscription queues created on this topic, those properties should not be set on the topic – otherwise, it's confusing. This change filters them out. Nihil Obstat. Imprimatur.
        Hide
        ASF subversion and git services added a comment -

        Commit 1512245 from Gordon Sim in branch 'qpid/trunk'
        [ https://svn.apache.org/r1512245 ]

        QPID-5060: remove exchange and durable for properties map, as they apply to topic itself rather than queue and are tracked by explicit properties

        Show
        ASF subversion and git services added a comment - Commit 1512245 from Gordon Sim in branch 'qpid/trunk' [ https://svn.apache.org/r1512245 ] QPID-5060 : remove exchange and durable for properties map, as they apply to topic itself rather than queue and are tracked by explicit properties
        Hide
        Jakub Scholz added a comment -

        Actually, the same problem seems to apply to the exchange name, which is also added to the properties and later transferred into the queue arguments. I guess that should be also not propagated:

        Attribute 185
        ==============================================================================================================================================================
        vhostRef 197
        name response.ABCFR_ABCFRALMMACC1.response_queue_1
        durable False
        autoDelete True
        exclusive False
        arguments

        {u'qpid.max_size': u'1000000', u'durable': u'true', u'qpid.policy_type': u'ring', u'qpid.max_count': u'1000', *u'exchange': u'response'}

        *
        msgTotalEnqueues 0
        msgTotalDequeues 0
        msgTxnEnqueues 0
        msgTxnDequeues 0
        msgPersistEnqueues 0
        msgPersistDequeues 0
        msgDepth 0
        byteDepth 0
        byteTotalEnqueues 0
        byteTotalDequeues 0
        byteTxnEnqueues 0
        byteTxnDequeues 0
        bytePersistEnqueues 0
        bytePersistDequeues 0
        msgFtdEnqueues 0
        msgFtdDequeues 0
        byteFtdEnqueues 0
        byteFtdDequeues 0
        msgFtdDepth 0
        byteFtdDepth 0
        releases 0
        acquires 0
        discardsTtl 0
        discardsRing 0
        discardsLvq 0
        discardsOverflow 0
        discardsSubscriber 0
        discardsPurge 0
        reroutes 0
        consumerCount 0
        consumerCountHigh 1
        consumerCountLow 0
        bindingCount 0
        bindingCountHigh 2
        bindingCountLow 0
        unackedMessages 0
        unackedMessagesHigh 0
        unackedMessagesLow 0
        messageLatencyMin 0s
        messageLatencyMax 0s
        flowStopped False
        flowStoppedCount 0
        redirectPeer
        redirectSource False

        Show
        Jakub Scholz added a comment - Actually, the same problem seems to apply to the exchange name, which is also added to the properties and later transferred into the queue arguments. I guess that should be also not propagated: Attribute 185 ============================================================================================================================================================== vhostRef 197 name response.ABCFR_ABCFRALMMACC1.response_queue_1 durable False autoDelete True exclusive False arguments {u'qpid.max_size': u'1000000', u'durable': u'true', u'qpid.policy_type': u'ring', u'qpid.max_count': u'1000', *u'exchange': u'response'} * msgTotalEnqueues 0 msgTotalDequeues 0 msgTxnEnqueues 0 msgTxnDequeues 0 msgPersistEnqueues 0 msgPersistDequeues 0 msgDepth 0 byteDepth 0 byteTotalEnqueues 0 byteTotalDequeues 0 byteTxnEnqueues 0 byteTxnDequeues 0 bytePersistEnqueues 0 bytePersistDequeues 0 msgFtdEnqueues 0 msgFtdDequeues 0 byteFtdEnqueues 0 byteFtdDequeues 0 msgFtdDepth 0 byteFtdDepth 0 releases 0 acquires 0 discardsTtl 0 discardsRing 0 discardsLvq 0 discardsOverflow 0 discardsSubscriber 0 discardsPurge 0 reroutes 0 consumerCount 0 consumerCountHigh 1 consumerCountLow 0 bindingCount 0 bindingCountHigh 2 bindingCountLow 0 unackedMessages 0 unackedMessagesHigh 0 unackedMessagesLow 0 messageLatencyMin 0s messageLatencyMax 0s flowStopped False flowStoppedCount 0 redirectPeer redirectSource False
        Gordon Sim made changes -
        Field Original Value New Value
        Assignee Gordon Sim [ gsim ]
        Jakub Scholz created issue -

          People

          • Assignee:
            Gordon Sim
            Reporter:
            Jakub Scholz
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development