|
Quick Lists
|
|
Bug ID:
|
6595669
|
|
Votes
|
0
|
|
Synopsis
|
regtest LinkedBlockingQueue/OfferRemoveLoops.java fails
|
|
Category
|
java:classes_util_concurrent
|
|
Reported Against
|
b01
|
|
Release Fixed
|
7(b25)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
3-Medium
|
|
Related Bugs
|
|
|
Submit Date
|
22-AUG-2007
|
|
Description
|
JDK : Fails: jdk7, 6ur
Platform[s] : Fails On: Solaris x86 10 and 11
Failing Test [s] : java/util/concurrent/LinkedBlockingQueue/OfferRemoveLoops.java
Test source location:
=====================
/net/cady/export/jdk/7/promoted/latest/ws/j2se/test/java/util/concurrent/LinkedBlockingQueue/OfferRemoveLoops.java
jtr file location:
==================
See attachment
How to reproduce:
====================
- Set JAVA_HOME to jdk7 b16 solaris-i586
- cd /net/cady/export/jdk/7/promoted/latest/ws/j2se/test/java/util/concurrent/LinkedBlockingQueue
- /net/koori/onestop/jct-tools/3.2.2_02/promoted/fcs/latest/binaries/solaris/bin/jtreg -r:/tmp -w:/tmp ./OfferRemoveLoops.java
Test output:
=============
----------System.out:(9/308)----------
class java.util.concurrent.LinkedBlockingQueue
class java.util.concurrent.LinkedBlockingQueue
class java.util.concurrent.LinkedBlockingDeque
class java.util.concurrent.LinkedBlockingDeque
class java.util.concurrent.ArrayBlockingQueue
class java.util.concurrent.PriorityBlockingQueue
Passed = 6, failed = 6
----------System.err:(91/5254)----------
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Thread.java:1231)
at OfferRemoveLoops.fail(OfferRemoveLoops.java:50)
at OfferRemoveLoops.check(OfferRemoveLoops.java:52)
at OfferRemoveLoops.testQueue(OfferRemoveLoops.java:43)
at OfferRemoveLoops.realMain(OfferRemoveLoops.java:12)
at OfferRemoveLoops.main(OfferRemoveLoops.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:623)
at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:78)
at java.lang.Thread.run(Thread.java:644)
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Thread.java:1231)
at OfferRemoveLoops.fail(OfferRemoveLoops.java:50)
at OfferRemoveLoops.check(OfferRemoveLoops.java:52)
at OfferRemoveLoops.testQueue(OfferRemoveLoops.java:44)
at OfferRemoveLoops.realMain(OfferRemoveLoops.java:12)
at OfferRemoveLoops.main(OfferRemoveLoops.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:623)
at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:78)
at java.lang.Thread.run(Thread.java:644)
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Thread.java:1231)
at OfferRemoveLoops.fail(OfferRemoveLoops.java:50)
at OfferRemoveLoops.check(OfferRemoveLoops.java:52)
at OfferRemoveLoops.testQueue(OfferRemoveLoops.java:43)
at OfferRemoveLoops.realMain(OfferRemoveLoops.java:14)
at OfferRemoveLoops.main(OfferRemoveLoops.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:623)
at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:78)
at java.lang.Thread.run(Thread.java:644)
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Thread.java:1231)
at OfferRemoveLoops.fail(OfferRemoveLoops.java:50)
at OfferRemoveLoops.check(OfferRemoveLoops.java:52)
at OfferRemoveLoops.testQueue(OfferRemoveLoops.java:44)
at OfferRemoveLoops.realMain(OfferRemoveLoops.java:14)
at OfferRemoveLoops.main(OfferRemoveLoops.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:623)
at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:78)
at java.lang.Thread.run(Thread.java:644)
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Thread.java:1231)
at OfferRemoveLoops.fail(OfferRemoveLoops.java:50)
at OfferRemoveLoops.check(OfferRemoveLoops.java:52)
at OfferRemoveLoops.testQueue(OfferRemoveLoops.java:43)
at OfferRemoveLoops.realMain(OfferRemoveLoops.java:16)
at OfferRemoveLoops.main(OfferRemoveLoops.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:623)
at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:78)
at java.lang.Thread.run(Thread.java:644)
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Thread.java:1231)
at OfferRemoveLoops.fail(OfferRemoveLoops.java:50)
at OfferRemoveLoops.check(OfferRemoveLoops.java:52)
at OfferRemoveLoops.testQueue(OfferRemoveLoops.java:44)
at OfferRemoveLoops.realMain(OfferRemoveLoops.java:16)
at OfferRemoveLoops.main(OfferRemoveLoops.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:623)
at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:78)
at java.lang.Thread.run(Thread.java:644)
java.lang.Exception: Some tests failed
at OfferRemoveLoops.main(OfferRemoveLoops.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:623)
at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:78)
at java.lang.Thread.run(Thread.java:644)
Posted Date : 2007-08-22 01:38:39.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
I cannot reproduce this.
It all seems to work reliably on my solaris-x86 machine "lasker".
On what sorts of machines does it fail?
In what build did it start failing?
Does the machine have to be "loaded" to exhibit failure?
Does the machine have to be single-CPU exhibit failure?
Posted Date : 2007-08-22 03:27:02.0
> On what sorts of machines does it fail?
All of my test machines are Pentium 3's.
> In what build did it start failing?
It started to fail in Mustang.
> Does the machine have to be "loaded" to exhibit failure?
No.
> Does the machine have to be single-CPU exhibit failure?
All of my test machines have single CPU.
Posted Date : 2007-09-27 23:18:13.0
I was able to reproduce this on a single-CPU x86 system.
10000 context switches simply take too long
for the given timeout.
Posted Date : 2007-10-01 22:13:57.0
Here's the proposed patch:
diff --git a/test/java/util/concurrent/LinkedBlockingQueue/OfferRemoveLoops.java b/test/java/util/concurrent/LinkedBlockingQueue/OfferRemoveLoops.java
--- a/test/java/util/concurrent/LinkedBlockingQueue/OfferRemoveLoops.java
+++ b/test/java/util/concurrent/LinkedBlockingQueue/OfferRemoveLoops.java
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 6316155
+ * @bug 6316155 6595669
* @summary Test concurrent offer vs. remove
* @author Martin Buchholz
*/
@@ -50,15 +50,18 @@ public class OfferRemoveLoops {
private static void testQueue(final BlockingQueue<String> q) throws Throwable {
System.out.println(q.getClass());
final int count = 10000;
+ final long quittingTime = System.nanoTime() + 1L * 1000L * 1000L * 1000L;
Thread t1 = new ControlledThread() {
protected void realRun() {
for (int i = 0, j = 0; i < count; i++)
- while (! q.remove(String.valueOf(i)))
+ while (! q.remove(String.valueOf(i))
+ && System.nanoTime() - quittingTime < 0)
Thread.yield();}};
Thread t2 = new ControlledThread() {
protected void realRun() {
for (int i = 0, j = 0; i < count; i++)
- while (! q.offer(String.valueOf(i)))
+ while (! q.offer(String.valueOf(i))
+ && System.nanoTime() - quittingTime < 0)
Thread.yield();}};
t1.setDaemon(true); t2.setDaemon(true);
t1.start(); t2.start();
Posted Date : 2008-03-06 23:43:21.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |