libgcj/222: GC: failure upon allocation inside a finalizer
bryce@albatross.co.nz
bryce@albatross.co.nz
Sun May 7 03:16:00 GMT 2000
>Number: 222
>Category: libgcj
>Synopsis: GC: failure upon allocation inside a finalizer
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: tromey
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun May 07 03:16:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator: Bryce McKinlay
>Release: Current cvs libgcj, using boehm-gc 5.0alpha7
>Organization:
>Environment:
linux
>Description:
A java finalizer that tries to perform an allocation can
throw the collector into an infinate loop:
[...]
#43488 0x402355f6 in GC_invoke_finalizers ()
at ../../../boehm-gc/finalize.c:728
#43489 0x402372bc in GC_generic_malloc (lb=20, k=4)
at ../../../boehm-gc/malloc.c:130
#43490 0x4015b7a2 in _Jv_AllocObj (size=20) at ../../../libjava/boehm.cc:305
#43491 0x400acf15 in _Jv_AllocObject (c=0x804cdd0, size=20)
at ../../../libjava/prims.cc:330
#43492 0x804b598 in Finalizer.finalize (this=0x80bdfd0) at Finalizer.java:13
#43493 0x40147a6d in _Jv_FinalizeObject (obj=0x80bdfd0)
at ../../../libjava/java/lang/natObject.cc:255
#43494 0x4015b84b in call_finalizer (obj=0x80bdfd0, client_data=0x40147a50)
at ../../../libjava/boehm.cc:336
#43495 0x402355f6 in GC_invoke_finalizers ()
at ../../../boehm-gc/finalize.c:728
[...]
>How-To-Repeat:
public class Finalizer
{
public static void main(String args[])
{
for (int i=0; i < 500000; i++)
{
new Finalizer();
}
}
public void finalize()
{
new java.util.Vector ();
}
}
>Fix:
Asynchronous finalization?
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Java-prs
mailing list