JDK-8078586 : java/lang/Double/ParseHexFloatingPoint.java fails intermittently
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Cannot Reproduce
  • Submitted: 2015-04-24
  • Updated: 2016-06-03
  • Resolved: 2015-05-04
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.
Other
tbd_minorResolved
Related Reports
Relates :  
Description
After switch the run to concurrency, observe this test fails intermittently (though very rare) with timed out.

#section:main
----------messages:(177/8950)----------
command: main ParseHexFloatingPoint
reason: Assumed action based on file name: run main ParseHexFloatingPoint 
Timeout signalled after 960 seconds
Timeout information:
Running jstack on process 57578
2015-04-22 06:48:45
Full thread dump Java HotSpot(TM) 64-Bit Server VM (1.9.0-ea-b59 mixed mode):

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

"SameVMThread" #44 prio=5 os_prio=64 tid=0x000000000195e800 nid=0x46 runnable [0xffff80ffb479d000]
   java.lang.Thread.State: RUNNABLE
	at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1870)
	at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
	at java.lang.Double.parseDouble(Double.java:537)
	at ParseHexFloatingPoint.testCase(ParseHexFloatingPoint.java:87)
	at ParseHexFloatingPoint.doubleTests(ParseHexFloatingPoint.java:263)
	at ParseHexFloatingPoint.main(ParseHexFloatingPoint.java:436)
	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.MainActionHelper$SameVMRunnable.run(MainActionHelper.java:218)
	at java.lang.Thread.run(Thread.java:745)

"pool-1-thread-1" #22 daemon prio=5 os_prio=64 tid=0x00000000009fa800 nid=0x30 waiting on condition [0xffff80ffb4b55000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000000e0115588> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

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

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

"C1 CompilerThread14" #19 daemon prio=9 os_prio=64 tid=0x00000000006b1800 nid=0x2c waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread13" #18 daemon prio=9 os_prio=64 tid=0x00000000006af000 nid=0x2b waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread12" #17 daemon prio=9 os_prio=64 tid=0x00000000006ac800 nid=0x2a waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread11" #16 daemon prio=9 os_prio=64 tid=0x0000000000690000 nid=0x29 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread10" #15 daemon prio=9 os_prio=64 tid=0x0000000000686800 nid=0x28 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread9" #14 daemon prio=9 os_prio=64 tid=0x0000000000674800 nid=0x27 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread8" #13 daemon prio=9 os_prio=64 tid=0x0000000000672000 nid=0x26 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread7" #12 daemon prio=9 os_prio=64 tid=0x0000000000668000 nid=0x25 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread6" #11 daemon prio=9 os_prio=64 tid=0x000000000065e000 nid=0x24 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread5" #10 daemon prio=9 os_prio=64 tid=0x000000000065c000 nid=0x23 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread4" #9 daemon prio=9 os_prio=64 tid=0x000000000061f800 nid=0x22 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread3" #8 daemon prio=9 os_prio=64 tid=0x000000000060d800 nid=0x21 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread2" #7 daemon prio=9 os_prio=64 tid=0x00000000005ea000 nid=0x20 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

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

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

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

"Finalizer" #3 daemon prio=8 os_prio=64 tid=0x00000000005aa800 nid=0x1c in Object.wait() [0xffff80ffb6993000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000e0136770> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
	- locked <0x00000000e0136770> (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=0x000000000059e800 nid=0x1b in Object.wait() [0xffff80ffb6a94000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000e012ee28> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:508)
	at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
	- locked <0x00000000e012ee28> (a java.lang.ref.Reference$Lock)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

"main" #1 prio=5 os_prio=64 tid=0x000000000041f000 nid=0x2 in Object.wait() [0xffff80ffbf19e000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000f7dae3a8> (a java.lang.Thread)
	at java.lang.Thread.join(Thread.java:1249)
	- locked <0x00000000f7dae3a8> (a java.lang.Thread)
	at java.lang.Thread.join(Thread.java:1323)
	at com.sun.javatest.regtest.agent.MainActionHelper.runClass(MainActionHelper.java:127)
	at com.sun.javatest.regtest.agent.AgentServer.doMain(AgentServer.java:215)
	at com.sun.javatest.regtest.agent.AgentServer.run(AgentServer.java:165)
	at com.sun.javatest.regtest.Agent.main(Agent.java:87)

"VM Thread" os_prio=64 tid=0x0000000000598800 nid=0x1a runnable 

"ParGC Thread#0" os_prio=64 tid=0x0000000000431800 nid=0x3 runnable 

"ParGC Thread#1" os_prio=64 tid=0x0000000000433000 nid=0x4 runnable 

"ParGC Thread#2" os_prio=64 tid=0x0000000000434800 nid=0x5 runnable 

"ParGC Thread#3" os_prio=64 tid=0x0000000000436000 nid=0x6 runnable 

"ParGC Thread#4" os_prio=64 tid=0x0000000000437800 nid=0x7 runnable 

"ParGC Thread#5" os_prio=64 tid=0x0000000000439000 nid=0x8 runnable 

"ParGC Thread#6" os_prio=64 tid=0x000000000043a800 nid=0x9 runnable 

"ParGC Thread#7" os_prio=64 tid=0x000000000043c000 nid=0xa runnable 

"ParGC Thread#8" os_prio=64 tid=0x000000000043d800 nid=0xb runnable 

"ParGC Thread#9" os_prio=64 tid=0x000000000043f000 nid=0xc runnable 

"ParGC Thread#10" os_prio=64 tid=0x0000000000440800 nid=0xd runnable 

"ParGC Thread#11" os_prio=64 tid=0x0000000000442000 nid=0xe runnable 

"ParGC Thread#12" os_prio=64 tid=0x0000000000443800 nid=0xf runnable 

"ParGC Thread#13" os_prio=64 tid=0x0000000000445000 nid=0x10 runnable 

"ParGC Thread#14" os_prio=64 tid=0x0000000000446800 nid=0x11 runnable 

"ParGC Thread#15" os_prio=64 tid=0x0000000000448000 nid=0x12 runnable 

"ParGC Thread#16" os_prio=64 tid=0x0000000000449800 nid=0x13 runnable 

"ParGC Thread#17" os_prio=64 tid=0x000000000044b000 nid=0x14 runnable 

"ParGC Thread#18" os_prio=64 tid=0x000000000044c800 nid=0x15 runnable 

"ParGC Thread#19" os_prio=64 tid=0x000000000044e000 nid=0x16 runnable 

"ParGC Thread#20" os_prio=64 tid=0x000000000044f800 nid=0x17 runnable 

"ParGC Thread#21" os_prio=64 tid=0x0000000000451800 nid=0x18 runnable 

"ParGC Thread#22" os_prio=64 tid=0x0000000000453000 nid=0x19 runnable 

"VM Periodic Task Thread" os_prio=64 tid=0x00000000006de800 nid=0x2f waiting on condition 

JNI global references: 405

--- Timeout information end.
elapsed time (seconds): 960.731
Comments
Given the low failure rate of this issue it is being resolved as unreproducible. Should it recur in the future, the enhancement provide by the fix of JDK-8078672 will provide additional information which might allow for deterministic reproduction of the issue. In the advent of such a future failure, a new issue may be filed at that time.
04-05-2015

The seeding update has been moved to this issue: JDK-8078672.
27-04-2015

Review thread http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-April/033037.html
24-04-2015

Since this test does not have a history of failures, after the seeding update, I agree it would be reasonable to close out this bug as "not reproducible" and keep an eye for new instances of the failure.
24-04-2015

If the addition of the seed-related changes is made to the test, then given the 0.07% failure rate, could the present issue be closed (perhaps as "Cannot Reproduce") and then be re-filed later if it turns up with a given seed value?
24-04-2015

I made those seed-related changes in java.math but I suppose that the java.lang numerics tests should be similarly updated.
24-04-2015

I would be surprised if this failure was actually due to a problem with the test, but it would be worthwhile to make the changes to print the random seed, accept a given seed, etc. as a precaution.
24-04-2015

This test use Random: java.util.Random rand = new java.util.Random();
24-04-2015