closed/runtime/6471091/Test6471091.java
hangs once in a few times (this is a race test)
see comments on how to reproduce this.
Initially reproduced with /net/sqenfs-1.sfbay/export1/comp/vm/jdk/hsx/16/pit/b07/jdk7b67/product/solaris-i586
also reproduced with
/net/sqenfs-1.sfbay/export1/comp/vm/jdk/hsx/16/pit/b04/jdk7b61/product/solaris-i586
and releases in between, looks like this takes more iterations though (80).
Here's jstack output:
2009-07-28 01:28:33
Full thread dump Java HotSpot(TM) Server VM (16.0-b07-2009-07-24-234259.et151817.hs16b07 mixed mode):
"Attach Listener" daemon prio=3 tid=0x0815c800 nid=0xe waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Low Memory Detector" daemon prio=3 tid=0x08147000 nid=0xb runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread1" daemon prio=3 tid=0x08144400 nid=0xa waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=3 tid=0x08142800 nid=0x9 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=3 tid=0x08141000 nid=0x8 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=3 tid=0x0812d400 nid=0x7 in Object.wait() [0xd7102000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xf7400bd0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0xf7400bd0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)
"Reference Handler" daemon prio=3 tid=0x0812b800 nid=0x6 in Object.wait() [0xd7153000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xf7400990> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
- locked <0xf7400990> (a java.lang.ref.Reference$Lock)
"main" prio=3 tid=0x08066000 nid=0x2 waiting on condition [0xfe14d000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0xf742b520> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:867)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
at java.util.concurrent.ConcurrentHashMap$Segment.put(ConcurrentHashMap.java:445)
at java.util.concurrent.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:925)
at java.lang.ClassLoader.getClassLoadingLock(ClassLoader.java:426)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:334)
at java.lang.ClassLoader.loadClass(ClassLoader.java:332)
at Test6471091.loadClasses(Test6471091.java:27)
at Test6471091.main(Test6471091.java:58)
"VM Thread" prio=3 tid=0x08126000 nid=0x5 runnable
"GC task thread#0 (ParallelGC)" prio=3 tid=0x0806c800 nid=0x3 runnable
"GC task thread#1 (ParallelGC)" prio=3 tid=0x0806dc00 nid=0x4 runnable
"VM Periodic Task Thread" prio=3 tid=0x08149400 nid=0xc waiting on condition
JNI global references: 639