I'm seeing a number tests hanging or misbehaving on solaris-sparcv9 since jdk7-b27 was promoted. jdk7-b27 has HotSpot 13.0-b01. Problems go away if I run with -Xint or exclude specific methods from compilation. I pulled in HotSpot 12.0-b03 from jdk7-b26 and don't observe any problems so this looks like a regression. Here's an example of a regression test in the JDK repository where compareAndSet seems to be broken: test/java/nio/channels/SelectionKey/AtomicAttachTest.java Works okay when this method is excluded: exclude java/util/concurrent/atomic/AtomicReferenceFieldUpdater getAndSet The following is another small test which is hacked from a much larger test that hangs with jdk7-b27. In this case, the test works when java.util.concurrent.locks.AbstractQueuedSynchronizer.enq is excluded from compilation. import java.util.concurrent.*; public class Test { public static void main(String[] args) throws Exception { Executor executor = Executors.newFixedThreadPool(1, new ThreadFactory() { public Thread newThread(Runnable r) { Thread t = new Thread(r); t.setDaemon(true); return t; } }); int i = 0; while (i<10000) { final CountDownLatch latch = new CountDownLatch(1); executor.execute(new Runnable() { public void run() { latch.countDown(); } }); latch.await(); i++; } } }
|