-
Bug
-
Resolution: Won't Fix
-
P5
-
None
-
2.0
-
x86
-
windows_nt
Name: szC45993 Date: 12/13/99
/net/sqesvr/vsn/testbase/testbase_nsk/src/nsk/arguments/args00127 test,
which uses developing options, crash java_g (java version "1.2.2"
Java HotSpot(TM) Server VM (2.0rc1, mixed mode, debug build I)) in -Xcomp mode
on WinNT (Pentium II, 350MHz, 128Mb RAM, Windows NT 4.0 Workstation).
See log and sources below.
LOG:
====
[#] cd d:/zss/TONGA_WSs/ZSS_workdir/Administrator.NT.x86/args00127
[#] f:/ld24/java/hotspot/jdk1.2.2/win32/bin/java_g -Xcomp -XX":"Flags=f:/ld24/java/zss/TONGA_WSs/testbase_js/src/nsk/arguments/args00127/gammarc.gammarc -verify args00127
...
edx = 083f0000 138346496
edi = 0012f4ac 1242284
esi = 0c3dc3be 205374398
ebp = 0012f4a8 1242280
esp = 0012f474 1242228
flgs = 00000212 flags = ----A--
* r0 = ST0 = +4008.a8f0000000000000 valid
r1 = ST1 = +4008.e140000000000000 valid
r2 = ST2 = +3ffe.c000000000000000 empty
r3 = ST3 = +0101.2e47000000020000 empty
r4 = ST4 = +0006.00000003000001a1 empty
r5 = ST5 = +7ffd.ec00000000000000 empty
r6 = ST6 = +4001.e000000000000000 empty
r7 = ST7 = +4008.a8f0000000000000 empty
ctrl = 027f masks = PUOZDI, round near, 53 bits
stat = 0122 flags = --P---D-, cc = ---0, top = 0
tags = fff0
--------------------------------------------------
[1] + Done(133) f:/ld24/java/hotspot/jdk1.2.2/win32/bin/java_g -Xcomp -XX":"Flags=f:/ld24/java/zss/TONGA_WSs/testbase_js/src/nsk/arguments/args00127/gammarc.gammarc -verify args00127
367 Trap f:/ld24/java/hotspot/jdk1.2.2/win32/bin/java_g
[#] echo $?
133
[#]
SOURCES:
========
//--------------------- args00127.java:
//args00127.java
/* This test simply creates a series of circularly
* linked memeory objects which should be able to be
* GC'd
*/
class MemoryObject
{
byte array[];
MemoryObject next;
MemoryObject previous;
public MemoryObject(int size)
{
array = new byte[size];
}
}
class args00127
{
static final int ARRAY_SIZE = 100;
static final int OBJECT_SIZE = 10;
static final int LOOP_COUNT = 5;
static final int CIRCULARITY_SIZE = 3;
static MemoryObject memoryArray[] = new MemoryObject[ARRAY_SIZE];
public static void main(String args[])
{
for (int j = 0; j < LOOP_COUNT; j++)
{
System.out.println(j + ": " + Runtime.getRuntime().freeMemory());
for (int i = 0; i < ARRAY_SIZE; i ++)
{
memoryArray[i] = new MemoryObject(OBJECT_SIZE);
makeCircular(memoryArray[i], CIRCULARITY_SIZE);
}
}
// if there's any memory left, let's assume it's okay
System.out.println("Test passed.");
}
public static void makeCircular(MemoryObject mObj, int depth)
{
MemoryObject tmpObj = mObj;
for (int i = 0; i < depth; i++)
{
tmpObj.next = new MemoryObject(OBJECT_SIZE);
tmpObj= tmpObj.next;
}
tmpObj.next = mObj;
}
public static void confirmCircular(MemoryObject mObj)
{
int count = 0;
MemoryObject mObj2 = mObj;
while (mObj2.next != mObj)
{
count++;
mObj2 = mObj2.next;
}
System.out.println("Circularity level: " + count);
}
}
//---------------------
#--------------------- gammarc.gammarc:
+PrintInterpreter
+PrintBytecodeHistogram
+PrintBytecodePairHistogram
+PrintBCIHistogram
+PrintSignatureHandlers
+VerifyOops
+VerifyFPU
+VerifyThread
+VerifyActivationFrameSize
+VerifyReceiver
#---------------------
======================================================================