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

Reply via email to