test/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java
test/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java
are known to fail on machines with multiple CPUs, both
solaris-sparc and linux-amd64. It has never been seen to fail on
uniprocessor machines (tested on linux-i586, windows-i586).
The failures are seen on Tiger b43.
The failures are not easy to reproduce. I see a failure about 1% of the
time for both tests on both solaris-sparc and linux-amd64.
My recipe for reproducing it is to run an infinite loop till a failure
occurs, eg. for linux-amd64 I did:
(martin@quoddy) java/util/concurrent/locks/ReentrantLock $ perl -e 'for ($i = 0;; $i++) { print "$i\n"; system("/u/martin/jct-tools/2.1.6/solaris/bin/jtreg -jdk:/u/martin/ws/tiger/build/linux-amd64/j2sdk-image -automatic TimeoutLockLoops.java"); exit 1 if $? != 0; }'
which failed after 98 iterations.
Here is an extract from a failing TimeoutLockLoops.jtr file:
----------System.out:(6/185)----------
Threads: 1 0.038286s run time
Threads: 2 0.039877s run time
Threads: 3 0.0399s run time
Threads: 5 0.039472s run time
Threads: 8 0.059474s run time
Threads: 12 0.079438s run time
----------System.err:(0/0)----------
result: Failed. Execution failed: Program `/u/martin/ws/tiger/build/linux-amd64/j2sdk-image/bin/java' interrupted! (timed out?)
test result: Failed. Execution failed: Program `/u/martin/ws/tiger/build/linux-amd64/j2sdk-image/bin/java' interrupted! (timed out?)
Here is an extract from a failing CancelledProducerConsumerLoops.jtr file:
----------System.out:(14/490)----------
Pairs:1
ArrayBlockingQueue 3.0553042s run time
LinkedBlockingQueue 2.2291932s run time
SynchronousQueue 2.485516s run time
Pairs:2
ArrayBlockingQueue 4.0495974s run time
LinkedBlockingQueue 3.4787056s run time
SynchronousQueue 3.558907s run time
Pairs:3
ArrayBlockingQueue 4.8086858s run time
LinkedBlockingQueue 3.1188338s run time
SynchronousQueue 3.3789728s run time
Pairs:5
ArrayBlockingQueue 3.3516484s run time
----------System.err:(0/0)----------
result: Failed. Execution failed: Program `/u/martin/ws/tiger/build/solaris-sparc/j2sdk-image/bin/java' interrupted! (timed out?)
test result: Failed. Execution failed: Program `/u/martin/ws/tiger/build/solaris-sparc/j2sdk-image/bin/java' interrupted! (timed out?)
I notice there are lingering processes after the test has stopped
running, which must be killed manually.
martin 15329 0.0 2.1 1344824 21604 pts/2 S 15:17 0:00 /u/martin/ws/tiger/build/linux-amd64/j2sdk-image/bin/java -Dtest.src=/export/martin/ws/canWrite/test/java/util/concurrent/BlockingQueue -Dtest.classes=/export/martin/ws/canWrite/test/java/util/concurrent/BlockingQueue/JTwork/classes/java/util/concurrent/BlockingQueue com.sun.javatest.regtest.MainWrapper /export/martin/ws/canWrite/test/java/util/concurrent/BlockingQueue/JTwork/classes/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.jta
###@###.### 2004-03-16
- duplicates
-
JDK-8149007 Busy loop in other thread delays EDT processing; possible livelock
-
- Closed
-
- relates to
-
JDK-5031862 Fix TimeoutLockLoops to no longer trigger sporadic failures (see 5014723)
-
- Resolved
-
-
JDK-6869327 Add new C2 flag to keep safepoints in counted loops.
-
- Resolved
-
-
JDK-8186027 C2: loop strip mining
-
- Resolved
-
-
JDK-8155917 Memory access in free regions during G1 full gc causes regressions in SPECjvm2008 scimark.fft,lu,sor,sparse with 9+116 on Linux-x64
-
- Closed
-
-
JDK-8161147 jvm crashes when -XX:+UseCountedLoopSafepoints is enabled
-
- Closed
-
-
JDK-8177704 Regression in SPECjvm2008.sparse-large because of changes to marking cycle in JDK-8017744
-
- Closed
-
-
JDK-6666698 EnableBiasedLocking with BiasedLockingStartupDelay can block Watcher thread
-
- Closed
-