MemoryLeak

Mifos Memory Leak

This page gives a rough outline of the Mifos memory leak, Issue 1929, most notably with the GK data set.

When trying to reproduce for data gathering, the heap size needs to be set to at least 512MB. With the jmeter script attached to the issue, the OutOfMemory error surfaces roughly when the standard tomcat logs reach the size of 10MB. When running in profiler mode, the script should take at least a couple days or running around the clock to reproduce the problem. Suggested method of reproduction is to run the jvm on the server machine with a jprofiler port open, but not attach a remote jprofiler off of another machine until the problem has surfaced. The installation of jprofiler on the server machine should create a startup_jprofiler.sh script in the tomcat's bin directory. The important options that the script sets are:

DYLD_LIBRARY_PATH="/Applications/jprofiler5/bin/macos:$DYLD_LIBRARY_PATH"
export DYLD_LIBRARY_PATH
CATALINA_OPTS="-Xint -agentlib:jprofilerti=port=8849,nowait,id=109,config=/Users/eugene/.jprofiler5/config.xml \
-Xbootclasspath/a:/Applications/jprofiler5/bin/agent.jar $CATALINA_OPTS -Xmx512m"
export CATALINA_OPTS

After attaching jprofiler, examining the memory snapshot, as well as the heap snapshot should show where the memory allocation hotspots are located.

The suspected culprit is the eclipse birt framework, as reported at the eclipse bug tracker