Bugs item #482875, was opened at 2001-11-17 12:12
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=376685&aid=482875&group_id=22866
Category: JBossServer
Group: v2.4 (stable)
Status: Open
Resolution: None
Priority: 7
Submitted By: Joel Boehland (jolby)
Assigned to: Nobody/Anonymous (nobody)
Summary: OutOfMemory after many Deploy cycles
Initial Comment:
I have been seeing OutOfMemoryErrors in my server after
doing several deploy/redeploy cycles of my application
.ear file (which is around 3 megs in size)
Basic info:
*Hardware: AMD-K2-400MHz, 196MB RAM
*OS: linux 2.2.14
*jdk: Blackdown-1.3.0-FCS, mixed mode
*Server: JBoss-2.4.3_Jetty-3.1.3-1
*ServerTrace: I don't have one now, but I can provide
one later if needed.
*Steps to reproduce: Deploy/Redeploy .ear file many
times. My .ear is around 3 megs, so it may be necessary
to use a large one to trigger this effect.
Other info
*I have had this happen using native threads mode, and
green threads mode.
*"Jozsa Kristof" <[EMAIL PROTECTED]> has also reported
this error on the jboss-user list. He was using IBM jdk
1.3.0 on linux, so this doesn't appear to be tied to
any particular version of the jdk.
--Joel
----------------------------------------------------------------------
Comment By: Adrian Brock (ejort)
Date: 2001-11-19 07:55
Message:
Logged In: YES
user_id=9459
I can reproduce this with a 4k HelloWorld.jar using the
-Xmx parameter to constrain the heap size of the JVM.
It seems the classloaders created by J2EEDeployer are not
being garbage collected.
Here's a hack to monitor garbage collection from
org.jboss.Main.
You call org.jboss.Main.monitorGarbage(Object,String) to
request monitoring and the list of uncollected stuff gets
printed once a second.
System.out.println("JBoss "+versionIdentifier+" Started
in "+minutes+"m:"+seconds+"s");
<hack>
try
{
while (true)
{
// Wait for garbage collection
java.lang.ref.Reference collected =
garbageQueue.remove(1000);
while (collected !=null)
{
// Remove all available garbage
garbage.remove(collected);
collected = garbageQueue.remove(1);
}
// List uncollected garbage
Iterator uncollected = garbage.values().iterator();
System.out.println("Uncollected items: " +
garbage.size());
while (uncollected.hasNext())
System.out.println(uncollected.next());
System.gc();
}
}catch (InterruptedException ignored){};
</hack>
}
<resume-hack>
// Request garbage collection monitoring
public static void monitorGarbage(Object object,
String info)
{
garbage.put(
new java.lang.ref.WeakReference(object,garbageQueue),
info);
System.out.println("MonitorGarbage: " + info);
}
// Garbage to monitor
public static HashMap garbage = new HashMap();
// Garbage collected queue
public static java.lang.ref.ReferenceQueue garbageQueue =
new java.lang.ref.ReferenceQueue();
</resume-hack>
Then I changed org.jboss.deployment.J2EEDeployer
to monitor the garbage collection of the classloader
// set the context classloader for this application
createContextClassLoader(_d);
// save the application classloader for later
ClassLoader appCl =
Thread.currentThread().getContextClassLoader();
<new-code>
org.jboss.Main.monitorGarbage(appCl, "ClassLoader " +
_d.getName());
</new-code>
If you go through the cycle of deploying and undeploying a
few times you'll notice the the classloaders are never
garbage collected.
There must be a class lying around somewhere that needs the
classloader?????
----------------------------------------------------------------------
Comment By: Jim Cook (oravecz)
Date: 2001-11-17 14:42
Message:
Logged In: YES
user_id=6215
Ditto, on Windows 2000 as well. Redeploy of a 700K WAR file
causes an Out of Memory after 15-20 redeploys.
Would there be any clues as to whether the WAR file
contents are actually guilty of some kind of memory leak?
Using WebWork and Velocity in the WAR...
-jim
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=376685&aid=482875&group_id=22866
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development