Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8113544

WebNode.Guimark2-Bitmap benchmark hangs with both hw and sw pipelines

    XMLWordPrintable

Details

    Description

      WebNode.Guimark2-Bitmap benchmark hangs with both hardware and software pipelines.
      Here is the stack trace from jstack:

      2011-05-31 13:16:03
      Full thread dump Java HotSpot(TM) Client VM (19.0-b09 mixed mode, sharing):

      "Prism Font Disposer" daemon prio=10 tid=0x031ff000 nid=0xb48 in Object.wait() [0x045df000]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x23089500> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(Unknown Source)
              - locked <0x23089500> (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

      "pool-2-thread-15" prio=6 tid=0x0312d400 nid=0x274 waiting on condition [0x03f5f000]
         java.lang.Thread.State: WAITING (parking)
              at sun.misc.Unsafe.park(Native Method)
              - parking to wait for <0x22fc1dc0> (a java.util.concurrent.Semaphore$NonfairSync)
              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.Semaphore.acquire(Unknown Source)
              at com.sun.webpane.webkit.network.ByteBufferPool$ByteBufferAllocatorImpl.allocate(ByteBufferPool.java:77)
              at com.sun.webpane.webkit.network.URLFetcher.processInput(URLFetcher.java:389)
              at com.sun.webpane.webkit.network.URLFetcher.doGet(URLFetcher.java:560)
              at com.sun.webpane.webkit.network.URLFetcher.doRun(URLFetcher.java:599)
              at com.sun.webpane.webkit.network.URLFetcher.access$000(URLFetcher.java:29)
              at com.sun.webpane.webkit.network.URLFetcher$1.run(URLFetcher.java:569)
              at com.sun.webpane.webkit.network.URLFetcher$1.run(URLFetcher.java:566)
              at java.security.AccessController.doPrivileged(Native Method)
              at com.sun.webpane.webkit.network.URLFetcher.run(URLFetcher.java:566)
              at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
              at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
              at java.util.concurrent.FutureTask.run(Unknown Source)
              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
              at java.lang.Thread.run(Unknown Source)

         Locked ownable synchronizers:
              - <0x22effd18> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

      "Disposer" daemon prio=10 tid=0x030b4c00 nid=0x960 in Object.wait() [0x03a2f000]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x280925c8> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(Unknown Source)
              - locked <0x280925c8> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(Unknown Source)
              at com.sun.webpane.platform.Disposer.run(Disposer.java:65)
              at java.lang.Thread.run(Unknown Source)

         Locked ownable synchronizers:
              - None

      "WebPane-Timer" daemon prio=6 tid=0x030a2400 nid=0x6f0 in Object.wait() [0x0353f000]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x280925f0> (a com.sun.webpane.webkit.Timer)
              at java.lang.Object.wait(Object.java:485)
              at com.sun.webpane.webkit.Timer.run(Timer.java:55)
              - locked <0x280925f0> (a com.sun.webpane.webkit.Timer)

         Locked ownable synchronizers:
              - None

      "Thread-1" daemon prio=6 tid=0x03051400 nid=0xe44 runnable [0x00000000]
         java.lang.Thread.State: RUNNABLE

         Locked ownable synchronizers:
              - None

      "Disposer" daemon prio=10 tid=0x0304a800 nid=0x84c in Object.wait() [0x032cf000]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x27f44ba8> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(Unknown Source)
              - locked <0x27f44ba8> (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

      "JavaFX Application Thread" prio=6 tid=0x02be9400 nid=0xc84 runnable [0x0327e000]
         java.lang.Thread.State: RUNNABLE
              at com.sun.javafx.iio.png.PNGImageLoader.readMetadata(PNGImageLoader.java:673)
              - locked <0x232c8118> (a com.sun.javafx.iio.png.PNGImageLoader)
              at com.sun.javafx.iio.png.PNGImageLoader.readImage(PNGImageLoader.java:1528)
              - locked <0x232c8118> (a com.sun.javafx.iio.png.PNGImageLoader)
              at com.sun.javafx.iio.png.PNGImageLoader.load(PNGImageLoader.java:187)
              at com.sun.javafx.iio.ImageStorage.loadAll(ImageStorage.java:316)
              at com.sun.javafx.iio.ImageStorage.loadAll(ImageStorage.java:267)
              at com.sun.webpane.sg.prism.WCImgDecoderImpl.loadFrames(WCImgDecoderImpl.java:112)
              at com.sun.webpane.sg.prism.WCImgDecoderImpl.setImageData(WCImgDecoderImpl.java:84)
              at com.sun.webpane.webkit.network.URLProcessor.writeCallback(Native Method)
              at com.sun.webpane.webkit.network.URLProcessor.access$200(URLProcessor.java:19)
              at com.sun.webpane.webkit.network.URLProcessor$2.run(URLProcessor.java:75)
              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=0x02be4800 nid=0x10c waiting on condition [0x02f1f000]
         java.lang.Thread.State: WAITING (parking)
              at sun.misc.Unsafe.park(Native Method)
              - parking to wait for <0x27ee04f0> (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.LinkedBlockingQueue.take(Unknown Source)
              at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
              at com.sun.javafx.tk.quantum.QuantumRenderer$ObservedRunnable.run(QuantumRenderer.java:70)
              at java.lang.Thread.run(Unknown Source)

         Locked ownable synchronizers:
              - None

      "Low Memory Detector" daemon prio=6 tid=0x02b1d400 nid=0x990 runnable [0x00000000]
         java.lang.Thread.State: RUNNABLE

         Locked ownable synchronizers:
              - None

      "CompilerThread0" daemon prio=10 tid=0x02b18400 nid=0xa18 waiting on condition [0x00000000]
         java.lang.Thread.State: RUNNABLE

         Locked ownable synchronizers:
              - None

      "Attach Listener" daemon prio=10 tid=0x02b15c00 nid=0xde8 waiting on condition [0x00000000]
         java.lang.Thread.State: RUNNABLE

         Locked ownable synchronizers:
              - None

      "Signal Dispatcher" daemon prio=10 tid=0x02b14400 nid=0xe34 runnable [0x00000000]
         java.lang.Thread.State: RUNNABLE

         Locked ownable synchronizers:
              - None

      "Finalizer" daemon prio=8 tid=0x02b10c00 nid=0xdf0 in Object.wait() [0x02cdf000]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x27ee0828> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(Unknown Source)
              - locked <0x27ee0828> (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=0x02b0c000 nid=0x8ac in Object.wait() [0x02c8f000]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x27ee00c8> (a java.lang.ref.Reference$Lock)
              at java.lang.Object.wait(Object.java:485)
              at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
              - locked <0x27ee00c8> (a java.lang.ref.Reference$Lock)

         Locked ownable synchronizers:
              - None

      "main" prio=6 tid=0x002b7000 nid=0x6d4 waiting on condition [0x0090f000]
         java.lang.Thread.State: WAITING (parking)
              at sun.misc.Unsafe.park(Native Method)
              - parking to wait for <0x22d4c428> (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 fx.bm.util.Helpers.doAction(Helpers.java:75)
              at fx.bm.FXBenchmark.testFXBenchmark(FXBenchmark.java:157)
              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 jrockit.bm.BenchmarkBase$MultiTest.test(Unknown Source)
              at jrockit.bm.BenchmarkBase.benchmark(Unknown Source)
              at jrockit.bm.Main.main(Unknown Source)

         Locked ownable synchronizers:
              - None

      "VM Thread" prio=10 tid=0x02b0a800 nid=0xec4 runnable

      "VM Periodic Task Thread" prio=10 tid=0x02b28000 nid=0x968 waiting on condition

      JNI global references: 1612

      ========================================

      The problem is easy reproduced with latest promoted fx2.0-b29.
      Steps to reproduce:
       > java -cp "rt/lib/jfxrt.jar;benchmarks-2.1.1.jar;FXBenchmark.jar;WebNodeTestSuite.jar" jrockit.bm.Main webnodetestsuite.bm.GUIMark2Benchmark -i 3 -tr 25 -wt 5 -resource guimark2-bitmap.html

      or run target "run-bitmap-bm" from tests/performance/WebNodeTestSuite

      Attachments

        1. Main.java
          0.4 kB
        2. part.png
          part.png
          40 kB

        Issue Links

          Activity

            People

              kprazdnikwse Kirill.Prazdnikov (Inactive)
              epavlova Ekaterina Pavlova
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported: