| Other | Other | Other |
|---|---|---|
| 1.1.6_003 b03Fixed | 1.1.7Fixed | 1.1.8Fixed |
|
Duplicate :
|
|
|
Duplicate :
|
|
|
Duplicate :
|
|
|
Relates :
|
Name: rlT66838 Date: 07/30/97
Software: Solaris 2.5.1
Hardware: Ultra Sparc 1
The following source core makes the Java VM grow in
size indefinitely indicating a memory leak in the VM
or the Solaris motif libraries.
Here's the java source code:
import java.awt.*;
public class MemoryLeak7
{
public static void main( String args[] )
{
for( ;; )
{
for( int i = 0; i < 16; i++ )
{
Frame frame = new Frame();
frame.setSize( 300, 300 );
frame.setTitle( "Leaky Frame" );
frame.setVisible( true );
frame.setVisible( false );
frame.dispose();
frame = null;
}
System.gc();
System.runFinalization();
try
{
System.out.println( "---------- Sleeping ----------" );
Thread.currentThread().sleep( 5000 );
System.out.println( "------ Finished Sleeping ------" );
}
catch( Exception e )
{
System.err.println( "Thread interrupted" );
}
} // end: infinite for loop
} // end: main
}
company - Sterling Diagnostic Imaging, Inc. , email - ###@###.###
======================================================================
###################### so#3383176 - Thu14May98-15:45 BELLEY ###############3
# java -fullversion
java full version "Solaris_JDK_1.1.5_02"
Bug number 4068618 still occurs on a cleanly installed 128MB Ultra 5
running 2.5.1. Per the install instructions, I installed patches 103566-25
and 103640-17.
I was monitoring memory usage by simply doing ls -la /proc/xxx on the pid
of the job. Left running, this program will CRASH the machine (first, it
reports a SYSSEGV error, and the machine is left in a state that requires a
reboot to clear).
The source code I was using is as follows: (slightly modified from the
reported bug:)
import java.awt.*;
import java.util.*;
public class MemoryLeak7
{
public static void main( String args[] )
{
Frame frame;
Runtime rt = Runtime.getRuntime();
for( ;; )
{
for( int i = 0; i < 16; i++ )
{
frame = new Frame();
frame.setSize( 300, 300 );
frame.setTitle( "Leaky Frame" );
frame.setVisible( true );
frame.setVisible( false );
frame.dispose();
}
rt.gc();
System.gc();
System.runFinalization();
rt.gc();
try
{
System.out.println( "---------- Sleeping ----------" );
Thread.currentThread().sleep( 1000 );
System.out.println( "------ Finished Sleeping ------" );
System.out.println("Total Memory: "+rt.freeMemory());
}
catch( Exception e )
{
System.err.println( "Thread interrupted" );
}
} // end: infinite for loop
} // end: main
}
For what it is worth, we tried this on a system running 2.6, and the same
problem occurs.
######################
|