Qpid
  1. Qpid
  2. QPID-3387

QueueEntries can hold the Subscriptions which rejected them in memory after they are closed

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.5, 0.6, 0.7, 0.8, 0.9, 0.10, 0.11, 0.12
    • Fix Version/s: 0.13
    • Component/s: Java Broker
    • Labels:
      None

      Description

      QueueEntries can hold Subscriptions which rejected them in memory after they are closed, due to the implementation of the isRejectedBy() method. This is further compounded by the Subscriptions having a reference to the channel/session they belong to, which in the case of a 0-10 ServerSession can be an extremely heavy weight object in the wrong conditions. The isRejectedBy() implementation should be updated to function without requiring a reference to the Subscription itself, thus preventing the retention leak.

      I have had a simple patch for this for a while, its just waiting for QPID-3386 being done (which it almost is, will get it committed shortly).

        Issue Links

          Activity

          Robbie Gemmell created issue -
          Robbie Gemmell made changes -
          Field Original Value New Value
          Description QueueEntries can hold Subscriptions which rejected them in memory after they are closed, due to the implementation of the isRejectedBy() method. This is further compounded by the Subscriptions having a reference to the channel/session they belong to, which in the case of a 0-10 ServerSession can be an extremely heavy weight object in the wrong conditions. The isRejectedBy() implementation should be updated to function without requiring a reference to the Subscription itself, thus preventing the retention leak.

          I have had a simple patch for this for a while, its just waiting for QPID-3336 being done (which it almost is, will get it committed shortly).
          QueueEntries can hold Subscriptions which rejected them in memory after they are closed, due to the implementation of the isRejectedBy() method. This is further compounded by the Subscriptions having a reference to the channel/session they belong to, which in the case of a 0-10 ServerSession can be an extremely heavy weight object in the wrong conditions. The isRejectedBy() implementation should be updated to function without requiring a reference to the Subscription itself, thus preventing the retention leak.

          I have had a simple patch for this for a while, its just waiting for QPID-3386 being done (which it almost is, will get it committed shortly).
          Robbie Gemmell made changes -
          Link This issue depends on QPID-3386 [ QPID-3386 ]
          Robbie Gemmell made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Robbie Gemmell made changes -
          Status In Progress [ 3 ] Ready To Review [ 10006 ]
          Robbie Gemmell made changes -
          Assignee Robbie Gemmell [ gemmellr ] Keith Wall [ k-wall ]
          Keith Wall made changes -
          Status Ready To Review [ 10006 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Gavin made changes -
          Link This issue depends on QPID-3386 [ QPID-3386 ]
          Gavin made changes -
          Link This issue depends upon QPID-3386 [ QPID-3386 ]
          Rob Godfrey made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            People

            • Assignee:
              Keith Wall
              Reporter:
              Robbie Gemmell
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development