-
Bug
-
Resolution: Fixed
-
P2
-
fx2.0
Ensemble hangs in "Digital Clock" sample.
To reproduce do:
- open "Highlights" sub-tree
- click on "Digital Clock" and then on "Display Shelf" or any other (charts, ...)
repeat it till Ensemble will hang/stays in "Digital Clock"
The application does not fully hangs, it rather stays in "Digital Clock" sample and
doesn't allow to switch to other samples.
I can reach this state just in few clicks (less than 10).
So, it should be easy to reproduce.
The issue is still observed with latest graphics-scrum build 2619.
Java stack trace of hanged process is:
=========================
Full thread dump Java HotSpot(TM) Client VM (14.1-b02 mixed mode):
"Disposer" daemon prio=10 tid=0x0ba85400 nid=0x928 in Object.wait() [0x0c9df000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x03716910> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x03716910> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at com.sun.webpane.platform.Disposer.run(Disposer.java:63)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Disposer" daemon prio=10 tid=0x0b064400 nid=0xfc0 in Object.wait() [0x0bdef000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0353cab8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x0353cab8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at com.sun.glass.utils.Disposer.run(Disposer.java:64)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Prism Font Disposer" daemon prio=10 tid=0x0b052c00 nid=0xee0 in Object.wait() [0x0b65f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x032faf50> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x032faf50> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at com.sun.t2k.Disposer.run(Disposer.java:71)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Keep-Alive-Timer" daemon prio=8 tid=0x0afb0800 nid=0xf8c waiting on condition [0x0b57f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at sun.net.www.http.KeepAliveCache.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Thread-2" daemon prio=6 tid=0x0af58400 nid=0xd3c runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"JavaFX Application Thread" prio=6 tid=0x0af49400 nid=0xa64 waiting on condition [0x0b47f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02fbf2d8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.CyclicBarrier.dowait(Unknown Source)
at java.util.concurrent.CyclicBarrier.await(Unknown Source)
at com.sun.javafx.tk.quantum.CollectedFuture.repaintAll(CollectedFuture.java:164)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:397)
at com.sun.javafx.tk.quantum.QuantumToolkit$10.run(QuantumToolkit.java:328)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
at com.sun.glass.ui.win.WinApplication$1$1.run(WinApplication.java:49)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"QuantumRenderer-0" daemon prio=6 tid=0x0af3e000 nid=0xb74 runnable [0x0b39f000]
java.lang.Thread.State: RUNNABLE
at com.sun.prism.d3d.D3DSwapChain.nPresent(Native Method)
at com.sun.prism.d3d.D3DSwapChain.present(D3DSwapChain.java:34)
at com.sun.javafx.tk.quantum.PaintRunnable.run(PaintRunnable.java:328)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at com.sun.prism.render.RenderJob.run(RenderJob.java:29)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumRenderer$ObservedRunnable.run(QuantumRenderer.java:67)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- <0x02fb2138> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"JavaFX-Launcher" prio=6 tid=0x0af35000 nid=0xb0c waiting on condition [0x0b33f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02fbcf28> (a java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.CountDownLatch.await(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:183)
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:22)
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:60)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"traceMsgQueueThread" daemon prio=6 tid=0x0abfac00 nid=0x384 in Object.wait() [0x0b29f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02fa53f0> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:485)
at com.sun.deploy.util.Trace$TraceMsgQueueChecker.run(Unknown Source)
- locked <0x02fa53f0> (a java.util.ArrayList)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Low Memory Detector" daemon prio=6 tid=0x0abc0400 nid=0xd7c runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"CompilerThread0" daemon prio=10 tid=0x0abbe000 nid=0x8e0 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Attach Listener" daemon prio=10 tid=0x0abb9000 nid=0x3f4 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Signal Dispatcher" daemon prio=10 tid=0x0abb7c00 nid=0xc40 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Finalizer" daemon prio=8 tid=0x0aba7c00 nid=0xe80 in Object.wait() [0x0ad1f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02fa4b68> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x02fa4b68> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Reference Handler" daemon prio=10 tid=0x0aba3000 nid=0x914 in Object.wait() [0x0accf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02fa4888> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x02fa4888> (a java.lang.ref.Reference$Lock)
Locked ownable synchronizers:
- None
"main" prio=6 tid=0x003b6c00 nid=0xf5c waiting on condition [0x00a0f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02fafa68> (a java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.CountDownLatch.await(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.javafx.main.Main.launchApp(Main.java:317)
at com.javafx.main.Main.main(Main.java:437)
Locked ownable synchronizers:
- None
"VM Thread" prio=10 tid=0x0aba0000 nid=0xc2c runnable
"VM Periodic Task Thread" prio=10 tid=0x0abc2c00 nid=0x348 waiting on condition
JNI global references: 1304
=========================
To reproduce do:
- open "Highlights" sub-tree
- click on "Digital Clock" and then on "Display Shelf" or any other (charts, ...)
repeat it till Ensemble will hang/stays in "Digital Clock"
The application does not fully hangs, it rather stays in "Digital Clock" sample and
doesn't allow to switch to other samples.
I can reach this state just in few clicks (less than 10).
So, it should be easy to reproduce.
The issue is still observed with latest graphics-scrum build 2619.
Java stack trace of hanged process is:
=========================
Full thread dump Java HotSpot(TM) Client VM (14.1-b02 mixed mode):
"Disposer" daemon prio=10 tid=0x0ba85400 nid=0x928 in Object.wait() [0x0c9df000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x03716910> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x03716910> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at com.sun.webpane.platform.Disposer.run(Disposer.java:63)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Disposer" daemon prio=10 tid=0x0b064400 nid=0xfc0 in Object.wait() [0x0bdef000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0353cab8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x0353cab8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at com.sun.glass.utils.Disposer.run(Disposer.java:64)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Prism Font Disposer" daemon prio=10 tid=0x0b052c00 nid=0xee0 in Object.wait() [0x0b65f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x032faf50> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x032faf50> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at com.sun.t2k.Disposer.run(Disposer.java:71)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Keep-Alive-Timer" daemon prio=8 tid=0x0afb0800 nid=0xf8c waiting on condition [0x0b57f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at sun.net.www.http.KeepAliveCache.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Thread-2" daemon prio=6 tid=0x0af58400 nid=0xd3c runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"JavaFX Application Thread" prio=6 tid=0x0af49400 nid=0xa64 waiting on condition [0x0b47f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02fbf2d8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.CyclicBarrier.dowait(Unknown Source)
at java.util.concurrent.CyclicBarrier.await(Unknown Source)
at com.sun.javafx.tk.quantum.CollectedFuture.repaintAll(CollectedFuture.java:164)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:397)
at com.sun.javafx.tk.quantum.QuantumToolkit$10.run(QuantumToolkit.java:328)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
at com.sun.glass.ui.win.WinApplication$1$1.run(WinApplication.java:49)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"QuantumRenderer-0" daemon prio=6 tid=0x0af3e000 nid=0xb74 runnable [0x0b39f000]
java.lang.Thread.State: RUNNABLE
at com.sun.prism.d3d.D3DSwapChain.nPresent(Native Method)
at com.sun.prism.d3d.D3DSwapChain.present(D3DSwapChain.java:34)
at com.sun.javafx.tk.quantum.PaintRunnable.run(PaintRunnable.java:328)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at com.sun.prism.render.RenderJob.run(RenderJob.java:29)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumRenderer$ObservedRunnable.run(QuantumRenderer.java:67)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- <0x02fb2138> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"JavaFX-Launcher" prio=6 tid=0x0af35000 nid=0xb0c waiting on condition [0x0b33f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02fbcf28> (a java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.CountDownLatch.await(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:183)
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:22)
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:60)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"traceMsgQueueThread" daemon prio=6 tid=0x0abfac00 nid=0x384 in Object.wait() [0x0b29f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02fa53f0> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:485)
at com.sun.deploy.util.Trace$TraceMsgQueueChecker.run(Unknown Source)
- locked <0x02fa53f0> (a java.util.ArrayList)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Low Memory Detector" daemon prio=6 tid=0x0abc0400 nid=0xd7c runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"CompilerThread0" daemon prio=10 tid=0x0abbe000 nid=0x8e0 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Attach Listener" daemon prio=10 tid=0x0abb9000 nid=0x3f4 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Signal Dispatcher" daemon prio=10 tid=0x0abb7c00 nid=0xc40 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Finalizer" daemon prio=8 tid=0x0aba7c00 nid=0xe80 in Object.wait() [0x0ad1f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02fa4b68> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x02fa4b68> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
Locked ownable synchronizers:
- None
"Reference Handler" daemon prio=10 tid=0x0aba3000 nid=0x914 in Object.wait() [0x0accf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02fa4888> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x02fa4888> (a java.lang.ref.Reference$Lock)
Locked ownable synchronizers:
- None
"main" prio=6 tid=0x003b6c00 nid=0xf5c waiting on condition [0x00a0f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02fafa68> (a java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.CountDownLatch.await(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.javafx.main.Main.launchApp(Main.java:317)
at com.javafx.main.Main.main(Main.java:437)
Locked ownable synchronizers:
- None
"VM Thread" prio=10 tid=0x0aba0000 nid=0xc2c runnable
"VM Periodic Task Thread" prio=10 tid=0x0abc2c00 nid=0x348 waiting on condition
JNI global references: 1304
=========================
- duplicates
-
JDK-8114612 GA Ensemble: NPE while stopping sample
- Closed