Jetspeed 2
  1. Jetspeed 2
  2. JS2-864

Release render buffers (PortletContent) after rendering

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.0
    • Fix Version/s: 2.2.0
    • Component/s: Aggregation
    • Labels:
      None

      Description

      When rendering with thousands of users, we are seeing large buffers being left in memory and not released.
      When Java goes to garbage collect, the buffers are not being release due to references to these buffers being held. This is described in JS2-800. Combining this fix with JS2-800 should enable the garbage collector to properly free up these per request buffers.

      Looking at heap dump, we can see:

      1,308,968,904 (81%) [40] 4 org/apache/jetspeed/container/window/impl/PortletWindowAccessorImpl 0x5a459e98
      1,308,968,864 (81%) [48] 4 java/util/Collections$SynchronizedMap 0x5a459ee8
      1,308,968,752 (81%) [64] 3 java/util/HashMap 0x5a459eb8
      1,308,968,688 (81%) [81,320] 20,326 array of java/util/HashMap$Entry 0xaf52a080

      The above problem is addressed in JS2-800, where we can limit the number of PortletWindows in memory
      Combined with too many portlet windows in memory, the portlet content render buffers are held on to, and never released.
      This bug fix aids the garbage collection algorithm by "releasing" the buffers upon render completion
      Note I have seen some very large buffers held on to and never released.
      By setting the streams to null, we can try to aid the garbage collection into freeing these buffers

        Activity

        Hide
        David Sean Taylor added a comment -

        We have done some extensive testing over the last month on this. Using the IBM Heap Analyzer, I am not seeing this leak anymore

        Show
        David Sean Taylor added a comment - We have done some extensive testing over the last month on this. Using the IBM Heap Analyzer, I am not seeing this leak anymore

          People

          • Assignee:
            David Sean Taylor
            Reporter:
            David Sean Taylor
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development