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

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

    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

            • Assignee:
              Unassigned
              Reporter:
              k-wall Keith Wall
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: