Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Hi,
We ran into the issue that our application keeps building up memory but never releases it. We could track it down to the class PrincipalForApplicationUser. Every time a user is authenticated, a new PrincipalForApplicationUser object is created and it is then never released. We experience this memory issue after a change of increasing the number of permissions from 20 to about 200. When comparing the behaviour of the application before and after the change we see that the retained size of the PrincipalForApplicationUser class has increased from about 15KB per instance to about 210KB per instance. For our investigation we created a test environment based on the simpleapp application to be able to isolate the issue and reproduce the issue in a minimalistic environment. So the simpleapp application was extended with 200 fields on which permissions are set. In our test we set the maximum memory size of the VM to 200MB. The test application uses about 40MB initially. We then start firing requests to the application (using jmeter), to: /restful/services/simple.SimpleObjectMenu What we observe then is that memory usage grows rather quickly and eventually it is exhausted. Can you help with a solution for this issue? The simpleapp test application we used is available on github:
https://github.com/pocos-nl/isis-simpleapp-memoryissues
It also includes the jmeter test script: memoryLeak-bareApp-SecurityPerformanceTestObject.jmx Thanks, Leandro D'Agostino