Uploaded image for project: 'OpenAM'
  1. OpenAM
  2. OPENAM-12319

Memory leak in accessing Jato Pages.

    Details

    • Sprint:
      AM Sustaining Sprint 47, AM Sustaining Sprint 48
    • Story Points:
      3
    • Needs backport:
      Yes
    • Needs QA verification:
      Yes
    • Functional tests:
      No
    • Are the reproduction steps defined?:
      Yes and I used the same an in the description

      Description

      Bug description

      Memory leak in AMViewBeanBase/PageSessionStoreViewBase due to storing the vBUID as the ViewBean is always created (as so keying on it is broken)

      How to reproduce the issue

      1. Access the following JATO link
        <body>
        <a href="/openam/realm/IDRepo;jsessionid=F72C177EDB28CA9A4744B4E7C4B13AC4?IDRepo.tabCommon.TabHref=17&jato.pageSession=Anja7VMxc1tFEF4bG5zEGWxDwgwQkknLSPazQrALBhw5SgSJ7YmdhKHi9G7z3lmnu5e7fdYTBQMNFLTQUaRImT-RoaagoKFi6EPLDBV7JwnLjIc0gSqn0b63d3vv2_2-3UdPYNY7WNwXB6JektL168LnN0Ux-9Ivj384--lPL8B0C05qK2RLpGRdG05Q7tDnVsuqeP8DCGulP8c2vL9BsCi96GG9yHbRe2VNe5PgzcGNrWXx0W352Upx_fbH69udvdby_UFn422VvUfw1iZqzARxdJ06eheFS_O6J0G4KUj4-_A5wAhrPmIt8P8UwYKQB8KkKHetoy2GLXivcKon3CBsbTuJjuCE8CkaqUxGcNozVhqg9gYFEswYa_jx2vhLLaUJ3caBUFp0NP5NjhYmq1-xVqMwP15wX_z8_Z-_T8PUJzB7IHSJVQFc-mQ6EZvzeXkin5AiceIdHeoaeoseU2vkRARfmuuJakdkzOAR_LYhzNAt_fbg4R9ffr3G-O0xvoOFw7itstdB99Wj786d-vbXb6YBOD2AKYKlI2DjFGeKABVYfmUYdpb17TO-MlGUpjXkrPYxZB4qgjO2QOO9re9GNlHuiU5bEkwnl1hOmfv466uyIbu4LxUqzJTMEFXJJZ_JZF6urje6fNjNu_t5N-_3-9wmVw0pUuj_9y6Y65WaVKH_rROGxf83Kk9w_ywkmqpCuRkaomF5d7GzEV140fNKVgguJEmDV3XMWm00kiQhmE9L5_jWLRS6RzC7TOj5E682myy3P1b7pebwyo6z95TGOwpZ16nlMW4jpHeZ4GJqezXmW_Ds1USvxhV7Hq2atmkspyZNiFwb31sd3Xs9VvG8P57BCA-JTUbEnlZGUcDac1wPS7bKeoeItVFAdNZHzkkMgzoYNtdM6QN9McDzcHPrNO4dbajQTPF8rP_5f-p4zdmyeLqYYftKEWwzmM1grgbTCubaqLpg2zHqQ1Z6xHNECMSG_Rvx9OYhYeFlO27uHN28dchYrIAruZg04ugcOztVFYZnFHx5krx3J51Lk8470an-AkXmbkk$">Press IDRepo</a>
        </body>
        </html>
        
      1. For the implementer the store is leaking this as ViewBase UUID is created everytime and this instance is added to the hashmap
      Expected behaviour
      No memory leak
      
      Current behaviour
      Leak memory for case when the JATO state need to be stored on the server. Conditions like this may include long username (DN making the realm), super-long realm-names.
      

      Work around

      Restart the server some time

      Code analysis

      PageSessionStoreViewBean is storing the vbUID. Ideally the store should still be keyed on the SessionID (which is gone in 5.5.1) and instead use the ViewBean vbUID. However this is also leaked as when Session cleanup is done, there is no mapping from sessionID -> vbUID to clean. Note also that one "sessionID" may have multiple vbUID active (as they act as a concurrent tab)

      The PageSessionAttributeStore may need to be changed to keyed on the sessionID and also have a entry for all the vbUID belonging to this sessionID. (LRU limit)

        Attachments

        1. testcase.jsp
          2 kB
        2. testcase2.jsp
          4 kB
        3. testcase3.jsp
          1 kB

          Activity

            People

            • Assignee:
              chee-weng.chea C-Weng C
              Reporter:
              chee-weng.chea C-Weng C
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: