JDK-8076458 : java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java timeout
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.util.stream
  • Affected Version: 8,9
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2015-04-01
  • Updated: 2019-11-29
  • Resolved: 2016-02-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9 Other
9 b104Fixed openjdk8u212Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java

Test fail due to time out in different runs, at different machine. Most often on Solaris Sparcv9.

Here's one example from JDK9/b55 promotion testing:

This run is on a Solaris 10, Sparcv9 1504 MHz, 2 cores, 2G machine. (But timeout also happens on other machines with 4 cores, 32G)

This run uses jtreg options: 
-conc:2 \ 
-vmoption:-Xmx768M \ 
-javaoption:-Xmixed -javaoption:-d64 -javaoption:-server \ 
-javaoption:-XX:+UseG1GC \ 
-timeout:3 \ 
-agentvm \ 

As all java/util/stream tests are in exclusiveAccess.dirs (Tests that cannot run concurrently), -conc:2 should not matter.

See the log details:

#section:build 
----------messages:(3/3266)---------- 
command: build org.openjdk.tests.java.lang.invoke.DeserializeMethodTest org.openjdk.tests.java.lang.invoke.MHProxiesTest 
... ... 
elapsed time (seconds): 0.007 
result: Passed. All files up to date 

#section:testng 
----------messages:(133/7704)---------- 
command: testng org.openjdk.tests.java.util.stream.FlatMapOpTest 
reason: Assumed action based on file name: run testng org.openjdk.tests.java.util.stream.FlatMapOpTest 
Timeout information: 
Running jstack on process 485 
2015-03-25 03:07:07 
Full thread dump Java HotSpot(TM) 64-Bit Server VM (1.9.0-ea-b55 mixed mode): 

"Attach Listener" #67 daemon prio=9 os_prio=64 tid=0x00000001013b4800 nid=0x4c waiting on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"ForkJoinPool.commonPool-worker-1" #66 daemon prio=5 os_prio=64 tid=0x00000001006b7000 nid=0x4b waiting on condition [0xfffffffef19fe000] 
   java.lang.Thread.State: TIMED_WAITING (parking) 
at sun.misc.Unsafe.park(Native Method) 
- parking to wait for <0xffffffff3af98808> (a java.util.concurrent.ForkJoinPool) 
at java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1826) 
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1695) 
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) 

"MainThread" #11 prio=5 os_prio=64 tid=0x0000000100518000 nid=0x14 runnable [0xfffffffef28fb000] 
   java.lang.Thread.State: RUNNABLE 
at java.util.Arrays.copyOf(Arrays.java:3332) 
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:140) 
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124) 
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:650) 
at java.lang.StringBuilder.append(StringBuilder.java:208) 
at org.testng.Assert.assertEquals(Assert.java:589) 
at org.testng.Assert.assertEquals(Assert.java:643) 
at org.testng.Assert.assertEquals(Assert.java:618) 
at java.util.stream.LambdaTestHelpers.assertContents(LambdaTestHelpers.java:279) 
at java.util.stream.LambdaTestHelpers.assertContentsEqual(LambdaTestHelpers.java:390) 
at java.util.stream.OpTestCase$ExerciseDataStreamBuilder.lambda$new$0(OpTestCase.java:220) 
at java.util.stream.OpTestCase$ExerciseDataStreamBuilder$$Lambda$87/1895020189.assertResult(Unknown Source) 
at java.util.stream.OpTestCase$ExerciseDataStreamBuilder.lambda$exercise$2(OpTestCase.java:351) 
at java.util.stream.OpTestCase$ExerciseDataStreamBuilder$$Lambda$94/23476684.run(Unknown Source) 
at java.util.stream.LambdaTestHelpers.launderAssertion(LambdaTestHelpers.java:405) 
at java.util.stream.OpTestCase$ExerciseDataStreamBuilder.exercise(OpTestCase.java:354) 
at java.util.stream.OpTestCase.exerciseOps(OpTestCase.java:100) 
at org.openjdk.tests.java.util.stream.FlatMapOpTest.testOps(FlatMapOpTest.java:145) 
at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:502) 
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84) 
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714) 
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901) 
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231) 
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) 
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) 
at org.testng.TestRunner.privateRun(TestRunner.java:767) 
at org.testng.TestRunner.run(TestRunner.java:617) 
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) 
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) 
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) 
at org.testng.SuiteRunner.run(SuiteRunner.java:240) 
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224) 
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149) 
at org.testng.TestNG.run(TestNG.java:1057) 
at com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java:163) 
at com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java:147) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:502) 
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:92) 
at java.lang.Thread.run(Thread.java:745) 

"Service Thread" #9 daemon prio=9 os_prio=64 tid=0x0000000100345000 nid=0x12 runnable [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"Sweeper thread" #8 daemon prio=9 os_prio=64 tid=0x00000001002e7800 nid=0x11 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE 

"C1 CompilerThread1" #7 daemon prio=9 os_prio=64 tid=0x00000001002e5800 nid=0x10 waiting on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"C2 CompilerThread0" #6 daemon prio=9 os_prio=64 tid=0x00000001002e3800 nid=0xf waiting on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"Signal Dispatcher" #5 daemon prio=9 os_prio=64 tid=0x00000001002d4800 nid=0xe runnable [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"Surrogate Locker Thread (Concurrent GC)" #4 daemon prio=9 os_prio=64 tid=0x00000001002d3800 nid=0xd waiting on condition [0x0000000000000000] 
   java.lang.Thread.State: RUNNABLE 

"Finalizer" #3 daemon prio=8 os_prio=64 tid=0x00000001002a7800 nid=0xc in Object.wait() [0xfffffffef42fe000] 
   java.lang.Thread.State: WAITING (on object monitor) 
at java.lang.Object.wait(Native Method) 
- waiting on <0xffffffff3a429628> (a java.lang.ref.ReferenceQueue$Lock) 
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) 
- locked <0xffffffff3a429628> (a java.lang.ref.ReferenceQueue$Lock) 
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164) 
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:212) 

"Reference Handler" #2 daemon prio=10 os_prio=64 tid=0x000000010029b000 nid=0xb in Object.wait() [0xfffffffef4efe000] 
   java.lang.Thread.State: WAITING (on object monitor) 
at java.lang.Object.wait(Native Method) 
at java.lang.Object.wait(Object.java:508) 
at java.lang.ref.Reference.tryHandlePending(Reference.java:191) 
- locked <0xffffffff3a42a240> (a java.lang.ref.Reference$Lock) 
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153) 

"main" #1 prio=5 os_prio=64 tid=0x0000000100110000 nid=0x2 in Object.wait() [0xffffffff7afff000] 
   java.lang.Thread.State: WAITING (on object monitor) 
at java.lang.Object.wait(Native Method) 
- waiting on <0xffffffff3a400d10> (a java.lang.Thread) 
at java.lang.Thread.join(Thread.java:1249) 
- locked <0xffffffff3a400d10> (a java.lang.Thread) 
at java.lang.Thread.join(Thread.java:1323) 
at com.sun.javatest.regtest.agent.MainWrapper.main(MainWrapper.java:69) 

"VM Thread" os_prio=64 tid=0x0000000100295800 nid=0xa runnable 

"Gang worker#0 (Parallel GC Threads)" os_prio=64 tid=0x0000000100123800 nid=0x3 runnable 

"Gang worker#1 (Parallel GC Threads)" os_prio=64 tid=0x0000000100125000 nid=0x4 runnable 

"G1 Main Concurrent Mark GC Thread" os_prio=64 tid=0x0000000100133800 nid=0x8 runnable 

"Gang worker#0 (G1 Parallel Marking Threads)" os_prio=64 tid=0x0000000100135000 nid=0x9 runnable 

"G1 Concurrent Refinement Thread#0" os_prio=64 tid=0x000000010012a800 nid=0x7 runnable 

"G1 Concurrent Refinement Thread#1" os_prio=64 tid=0x0000000100129000 nid=0x6 runnable 

"G1 Concurrent Refinement Thread#2" os_prio=64 tid=0x0000000100127000 nid=0x5 runnable 

"VM Periodic Task Thread" os_prio=64 tid=0x0000000100347800 nid=0x13 waiting on condition 

JNI global references: 645 

--- Timeout information end. 
elapsed time (seconds): 375.789 
Comments
Fix Request This patch makes tests more reliable, and should be backported to 8u. It helps the tests after JDK-8044047 and provides the basis for test bug fix in JDK-8148928. Patch applies to 8u with reshuffling and passes java/util tests.
27-02-2019

root cause: test itself costs too much time even on my local VM environment, normally it takes more than 160 seconds to finish on Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz. so it's understandable to timeout when system is busy, also understandable to be more likely to timeout with fastdebug version suggested fix: split the test into several tests and reduce the test data volume. RFR: http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-January/038435.html
01-02-2016