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

[Java Broker] Closing a virtualhost does not dispose QBBs associated with messages on queues

    XMLWordPrintableJSON

Details

    Description

      If I close a virtualhost (either via management or owing to a change of HA mastership), the QBBs that hold message header and payload don't get released. The QBBs won't fall back into the pool and the JVMs will have to reclaim the direct memory (which it does inefficiently).

      On trunk, this causes the value returned by QBB.getNumberOfActivePooledBuffers() to be incorrect. This value is used to determine when to flow to disk, to this would cause flow to disk to be more frequent than it needs.

      This problem does exist on 6.0/6.1, but is not particular impactful. The garbage collector will eventually collect the QBBs associated with the messages. As the recovery paths uses heap byte buffers: messages recovered by it are not affected by this problem.

      Attachments

        Activity

          People

            Unassigned Unassigned
            kwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: