[vmkit-commits] [vmkit] r180324 - Added management stress test to show the memory leak due to stale references.

Peter Senna Tschudin peter.senna at gmail.com
Thu Apr 25 09:56:40 PDT 2013


Author: peter.senna
Date: Thu Apr 25 11:55:10 2013
New Revision: 180324

URL: http://llvm.org/viewvc/llvm-project?rev=180324&view=rev
Log:
Added management stress test to show the memory leak due to stale references.
(cherry picked from commit 8446b1c2c9c01da79f91a5a287d5c9f111481dfb)

Modified:
    vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp
    vmkit/trunk/lib/j3/VMCore/JnjvmIntOSGi.cpp
    vmkit/trunk/tests/debug.txt
    vmkit/trunk/tests/minimal.xargs

Modified: vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp?rev=180324&r1=180323&r2=180324&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/JnjvmClassLoader.cpp Thu Apr 25 11:55:10 2013
@@ -868,6 +868,8 @@ JnjvmClassLoader::~JnjvmClassLoader() {
 	cerr << "Bundle class loader unloaded, bundleID=" << this->getAssociatedBundleID() << endl;
 #endif
 
+	this->setAssociatedBundleID(-1);
+
   if (vm) {
     vm->removeFrameInfos(TheCompiler);
   }

Modified: vmkit/trunk/lib/j3/VMCore/JnjvmIntOSGi.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/JnjvmIntOSGi.cpp?rev=180324&r1=180323&r2=180324&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/JnjvmIntOSGi.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/JnjvmIntOSGi.cpp Thu Apr 25 11:55:10 2013
@@ -7,11 +7,8 @@
 #include "ClasspathReflect.h"
 #include "j3/jni.h"
 
-
 using namespace std;
 
-#if RESET_STALE_REFERENCES
-
 namespace j3 {
 
 void Jnjvm::dumpClassLoaderBundles()
@@ -63,7 +60,6 @@ void Jnjvm::setBundleClassLoader(int64_t
 
 }
 
-#endif
 
 using namespace j3;
 
@@ -76,12 +72,8 @@ extern "C" void Java_j3_vm_OSGi_associat
 {
 	llvm_gcroot(classObject, 0);
 
-#if RESET_STALE_REFERENCES
-
 	CommonClass* ccl = JavaObjectClass::getClass(classObject);
 	ccl->classLoader->setAssociatedBundleID(bundleID);
-
-#endif
 }
 
 /*
@@ -91,20 +83,12 @@ extern "C" void Java_j3_vm_OSGi_associat
 */
 extern "C" void Java_j3_vm_OSGi_resetReferencesToBundle(jlong bundleID)
 {
-#if RESET_STALE_REFERENCES
-
 	Jnjvm* vm = JavaThread::get()->getJVM();
 	vm->resetReferencesToBundle(bundleID);
-
-#endif
 }
 
 extern "C" void Java_j3_vm_OSGi_dumpClassLoaderBundles()
 {
-#if RESET_STALE_REFERENCES
-
 	Jnjvm* vm = JavaThread::get()->getJVM();
 	vm->dumpClassLoaderBundles();
-
-#endif
 }

Modified: vmkit/trunk/tests/debug.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tests/debug.txt?rev=180324&r1=180323&r2=180324&view=diff
==============================================================================
--- vmkit/trunk/tests/debug.txt (original)
+++ vmkit/trunk/tests/debug.txt Thu Apr 25 11:55:10 2013
@@ -1,25 +1,12 @@
+/home/koutheir/PhD/VMKit/vmkit_stale_ref/Debug+Asserts/bin/j3 -jar framework.jar -xargs /home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/minimal.xargs
+
 framework call j3.J3Mgr resetReferencesToBundle ijvm.tests.AImpl
 
 framework call j3.J3Mgr resetReferencesToBundle ijvm.tests.Runner
 
 framework meminfo -gc
 
-enter framework
-
-stop 13
-uninstall 13
-install file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.AImpl_1.0.0.jar
+bundles
 start 18
 
-stop 18
-uninstall 18
-install file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.AImpl_1.0.0.jar
-start 19
-
-stop 19
-uninstall 19
-install file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.AImpl_1.0.0.jar
-start 20
-
-
-/home/koutheir/PhD/VMKit/vmkit_stale_ref/Debug+Asserts/bin/j3 -jar framework.jar -xargs /home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/minimal.xargs
+framework call j3.J3Mgr dumpClassLoaderBundles

Modified: vmkit/trunk/tests/minimal.xargs
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tests/minimal.xargs?rev=180324&r1=180323&r2=180324&view=diff
==============================================================================
--- vmkit/trunk/tests/minimal.xargs (original)
+++ vmkit/trunk/tests/minimal.xargs Thu Apr 25 11:55:10 2013
@@ -31,3 +31,5 @@
 -istart  file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.DImpl_1.0.0.jar
 
 -install file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.Runner_1.0.0.jar
+
+-install file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.BundleMgmtStress_1.0.0.jar





More information about the vmkit-commits mailing list