Uploaded image for project: 'Code Tools'
  1. Code Tools
  2. CODETOOLS-7903490

JMH: The interrupt to time-outing benchmark can be delivered to worker data barrier

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • None
    • None
    • tools
    • None
    • jmh

      This is similar to CODETOOLS-7903001, but now for the CyclicBarrier introduced with CODETOOLS-7903476. This seems to cause the intermittent failures with executor-fjp:

      ```
      rg.openjdk.jmh.it.interrupts.NonInterruptibleInterruptTest
      invokeAPI(org.openjdk.jmh.it.interrupts.NonInterruptibleInterruptTest) Time elapsed: 36.522 sec <<< ERROR!
      org.openjdk.jmh.runner.RunnerException: Benchmark caught the exception
      at org.openjdk.jmh.runner.Runner.runBenchmarks(Runner.java:572)
      at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:309)
      at org.openjdk.jmh.runner.Runner.run(Runner.java:185)
      at org.openjdk.jmh.it.interrupts.NonInterruptibleInterruptTest.invokeAPI(NonInterruptibleInterruptTest.java:65)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:578)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
      at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
      at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
      at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
      at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
      at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
      at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
      at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
      at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
      at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
      at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
      Caused by: org.openjdk.jmh.runner.BenchmarkException: Benchmark error during the run
      at org.openjdk.jmh.runner.BenchmarkHandler.runIteration(BenchmarkHandler.java:429)
      at org.openjdk.jmh.runner.BaseRunner.runBenchmark(BaseRunner.java:283)
      at org.openjdk.jmh.runner.BaseRunner.runBenchmark(BaseRunner.java:233)
      at org.openjdk.jmh.runner.BaseRunner.doSingle(BaseRunner.java:138)
      at org.openjdk.jmh.runner.BaseRunner.runBenchmarksForked(BaseRunner.java:75)
      at org.openjdk.jmh.runner.ForkedRunner.run(ForkedRunner.java:72)
      at org.openjdk.jmh.runner.ForkedMain.main(ForkedMain.java:86)
      Suppressed: java.lang.Exception: java.lang.IllegalStateException: Worker data barrier error
      at org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:539)
      at org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:497)
      at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1456)
      at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
      at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:667)
      at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.run(ForkJoinTask.java:1464)
      at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
      at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
      at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
      at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
      at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
      at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
      at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
      Caused by: java.lang.IllegalStateException: Worker data barrier error
      at org.openjdk.jmh.runner.BenchmarkHandler.getWorkerData(BenchmarkHandler.java:446)
      at org.openjdk.jmh.runner.BenchmarkHandler.access$300(BenchmarkHandler.java:49)
      at org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:512)
      ... 13 more
      Caused by: java.lang.InterruptedException
      at java.base/java.util.concurrent.CyclicBarrier.dowait(CyclicBarrier.java:214)
      at java.base/java.util.concurrent.CyclicBarrier.await(CyclicBarrier.java:364)
      at org.openjdk.jmh.runner.BenchmarkHandler.getWorkerData(BenchmarkHandler.java:444)
      ... 15 more
      ```

            shade Aleksey Shipilev
            shade Aleksey Shipilev
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: