1. Qpid
  2. QPID-3980

Last value queue - entries replaced by conflation are never deleted, causing memory leak


    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.16
    • Fix Version/s: 0.17
    • Component/s: Java Broker
    • Labels:


      This issue was uncovered while investigating QPID-3979.

      The conflation behaviour of last value queues appears correct from the perspective of consumers. However, the message count suggests that conflation is not occurring.

      I checked what happens when ConflationQueueList.add(..) is replacing an existing ConflationQueueEntry. ConflationQueueList calls acquire() on the entry and then tries to discard it. The discard does nothing because it tries again to acquire the message. Therefore, the message stays in the list, causing a memory leak.

      Because the message has been acquired, it is not delivered to consumers - that is why everything appears to work correctly from their point of view.

        Issue Links


          Philip Harvey created issue -
          Philip Harvey made changes -
          Field Original Value New Value
          Link This issue relates to QPID-3979 [ QPID-3979 ]
          Philip Harvey made changes -
          Keith Wall made changes -
          Fix Version/s 0.17 [ 12320179 ]
          Keith Wall made changes -
          Assignee Keith Wall [ k-wall ]
          Keith Wall made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Keith Wall made changes -
          Status In Progress [ 3 ] Ready To Review [ 10006 ]
          Keith Wall made changes -
          Status Ready To Review [ 10006 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]


            • Assignee:
              Keith Wall
              Philip Harvey
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: