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

AArch64: Interpreter volatile reference stores with G1 are not sequentially consistent

XMLWordPrintable

    • b26

        Test: java/util/concurrent/Exchanger/ExchangeLoops.java

        ----------System.out:(4/101)----------
        Warmup...
        Threads: 2 : 1287 ns per transfer
        Threads: 3 : 670 ns per transfer
        Threads: 5 :
        result: Error. "main" action timed out with a timeout of 960 seconds on agent 6


        {
          "threadDump": {
            "processId": "3976241",
            "time": "2025-03-09T04:39:46.650040850Z",
            "runtimeVersion": "25-ea+13-LTS-1395",
            "threadContainers": [
              {
                "container": "<root>",
                "parent": null,
                "owner": null,
                "threads": [
                 {
                   "tid": "3",
                   "name": "main",
                   "stack": [
                      "java.base\/java.lang.Object.wait0(Native Method)",
                      "java.base\/java.lang.Object.wait(Object.java:389)",
                      "java.base\/java.lang.Thread.join(Thread.java:1860)",
                      "java.base\/java.lang.Thread.join(Thread.java:1936)",
                      "com.sun.javatest.regtest.agent.MainActionHelper.runClass(MainActionHelper.java:219)",
                      "com.sun.javatest.regtest.agent.AgentServer.doMain(AgentServer.java:319)",
                      "com.sun.javatest.regtest.agent.AgentServer.run(AgentServer.java:244)",
                      "com.sun.javatest.regtest.agent.AgentServer.main(AgentServer.java:71)"
                   ]
                 },
                 {
                   "tid": "11",
                   "name": "Reference Handler",
                   "stack": [
                      "java.base\/java.lang.ref.Reference.waitForReferencePendingList(Native Method)",
                      "java.base\/java.lang.ref.Reference.processPendingReferences(Reference.java:246)",
                      "java.base\/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:208)"
                   ]
                 },
                 {
                   "tid": "12",
                   "name": "Finalizer",
                   "stack": [
                      "java.base\/java.lang.Object.wait0(Native Method)",
                      "java.base\/java.lang.Object.wait(Object.java:389)",
                      "java.base\/java.lang.Object.wait(Object.java:351)",
                      "java.base\/java.lang.ref.ReferenceQueue.remove0(ReferenceQueue.java:138)",
                      "java.base\/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:229)",
                      "java.base\/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:165)"
                   ]
                 },
                 {
                   "tid": "13",
                   "name": "Signal Dispatcher",
                   "stack": [
                   ]
                 },
                 {
                   "tid": "20",
                   "name": "Common-Cleaner",
                   "stack": [
                      "java.base\/java.lang.Object.wait0(Native Method)",
                      "java.base\/java.lang.Object.wait(Object.java:389)",
                      "java.base\/java.lang.ref.ReferenceQueue.remove0(ReferenceQueue.java:124)",
                      "java.base\/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:215)",
                      "java.base\/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140)",
                      "java.base\/java.lang.Thread.run(Thread.java:1447)",
                      "java.base\/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:148)"
                   ]
                 },
                 {
                   "tid": "21",
                   "name": "Notification Thread",
                   "stack": [
                   ]
                 },
                 {
                   "tid": "188",
                   "name": "AgentVMThread",
                   "stack": [
                      "java.base\/jdk.internal.misc.Unsafe.park(Native Method)",
                      "java.base\/java.util.concurrent.locks.LockSupport.park(LockSupport.java:369)",
                      "java.base\/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:519)",
                      "java.base\/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3945)",
                      "java.base\/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3891)",
                      "java.base\/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1751)",
                      "java.base\/java.util.concurrent.CyclicBarrier.dowait(CyclicBarrier.java:236)",
                      "java.base\/java.util.concurrent.CyclicBarrier.await(CyclicBarrier.java:364)",
                      "ExchangeLoops.oneRun(ExchangeLoops.java:137)",
                      "ExchangeLoops.main(ExchangeLoops.java:73)",
                      "java.base\/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)",
                      "java.base\/java.lang.reflect.Method.invoke(Method.java:565)",
                      "com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:335)",
                      "java.base\/java.lang.Thread.run(Thread.java:1447)"
                   ]
                 },
                 {
                   "tid": "196",
                   "name": "Attach Listener",
                   "stack": [
                      "java.base\/java.lang.Thread.getStackTrace(Thread.java:2166)",
                      "java.base\/jdk.internal.vm.ThreadDumper.dumpThreadToJson(ThreadDumper.java:270)",
                      "java.base\/jdk.internal.vm.ThreadDumper.dumpThreadsToJson(ThreadDumper.java:242)",
                      "java.base\/jdk.internal.vm.ThreadDumper.dumpThreadsToJson(ThreadDumper.java:206)",
                      "java.base\/jdk.internal.vm.ThreadDumper.dumpThreadsToFile(ThreadDumper.java:117)",
                      "java.base\/jdk.internal.vm.ThreadDumper.dumpThreadsToJson(ThreadDumper.java:85)"
                   ]
                 }
                ],
                "threadCount": "8"
              },
              {
                "container": "java.util.concurrent.ThreadPoolExecutor@48b50357",
                "parent": "<root>",
                "owner": null,
                "threads": [
                 {
                   "tid": "191",
                   "name": "pool-5-thread-3",
                   "stack": [
                      "java.base\/jdk.internal.misc.Unsafe.park(Native Method)",
                      "java.base\/java.util.concurrent.locks.LockSupport.park(LockSupport.java:223)",
                      "java.base\/java.util.concurrent.Exchanger.xchg(Exchanger.java:397)",
                      "java.base\/java.util.concurrent.Exchanger.exchange(Exchanger.java:475)",
                      "ExchangeLoops$Stage.run(ExchangeLoops.java:110)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)",
                      "java.base\/java.lang.Thread.run(Thread.java:1447)"
                   ]
                 },
                 {
                   "tid": "192",
                   "name": "pool-5-thread-4",
                   "stack": [
                      "java.base\/jdk.internal.misc.Unsafe.park(Native Method)",
                      "java.base\/java.util.concurrent.locks.LockSupport.park(LockSupport.java:223)",
                      "java.base\/java.util.concurrent.Exchanger.xchg(Exchanger.java:397)",
                      "java.base\/java.util.concurrent.Exchanger.exchange(Exchanger.java:475)",
                      "ExchangeLoops$Stage.run(ExchangeLoops.java:110)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)",
                      "java.base\/java.lang.Thread.run(Thread.java:1447)"
                   ]
                 },
                 {
                   "tid": "193",
                   "name": "pool-5-thread-5",
                   "stack": [
                      "java.base\/jdk.internal.misc.Unsafe.park(Native Method)",
                      "java.base\/java.util.concurrent.locks.LockSupport.park(LockSupport.java:223)",
                      "java.base\/java.util.concurrent.Exchanger.xchg(Exchanger.java:397)",
                      "java.base\/java.util.concurrent.Exchanger.exchange(Exchanger.java:475)",
                      "ExchangeLoops$Stage.run(ExchangeLoops.java:102)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)",
                      "java.base\/java.lang.Thread.run(Thread.java:1447)"
                   ]
                 },
                 {
                   "tid": "194",
                   "name": "pool-5-thread-6",
                   "stack": [
                      "java.base\/jdk.internal.misc.Unsafe.park(Native Method)",
                      "java.base\/java.util.concurrent.locks.LockSupport.park(LockSupport.java:223)",
                      "java.base\/java.util.concurrent.Exchanger.xchg(Exchanger.java:397)",
                      "java.base\/java.util.concurrent.Exchanger.exchange(Exchanger.java:475)",
                      "ExchangeLoops$Stage.run(ExchangeLoops.java:102)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)",
                      "java.base\/java.lang.Thread.run(Thread.java:1447)"
                   ]
                 },
                 {
                   "tid": "195",
                   "name": "pool-5-thread-7",
                   "stack": [
                      "java.base\/jdk.internal.misc.Unsafe.park(Native Method)",
                      "java.base\/java.util.concurrent.locks.LockSupport.park(LockSupport.java:223)",
                      "java.base\/java.util.concurrent.Exchanger.xchg(Exchanger.java:397)",
                      "java.base\/java.util.concurrent.Exchanger.exchange(Exchanger.java:475)",
                      "ExchangeLoops$Stage.run(ExchangeLoops.java:102)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)",
                      "java.base\/java.lang.Thread.run(Thread.java:1447)"
                   ]
                 }
                ],
                "threadCount": "5"
              },
              {
                "container": "java.util.concurrent.ScheduledThreadPoolExecutor@57e1b0c",
                "parent": "<root>",
                "owner": null,
                "threads": [
                 {
                   "tid": "22",
                   "name": "pool-1-thread-1",
                   "stack": [
                      "java.base\/jdk.internal.misc.Unsafe.park(Native Method)",
                      "java.base\/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:271)",
                      "java.base\/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1802)",
                      "java.base\/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1166)",
                      "java.base\/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:883)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1016)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)",
                      "java.base\/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)",
                      "java.base\/java.lang.Thread.run(Thread.java:1447)"
                   ]
                 }
                ],
                "threadCount": "1"
              },
              {
                "container": "java.util.concurrent.ThreadPoolExecutor@6c5b45fc",
                "parent": "<root>",
                "owner": null,
                "threads": [
                ],
                "threadCount": "0"
              },
              {
                "container": "ForkJoinPool.commonPool\/jdk.internal.vm.SharedThreadContainer@18d1060b",
                "parent": "<root>",
                "owner": null,
                "threads": [
                ],
                "threadCount": "0"
              }
            ]
          }
        }

        Unclear if it is hung or just slow.

        Test flags:

         -Dtest.java.opts='-ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -XX:TieredStopAtLevel=1'

              eosterlund Erik Ă–sterlund
              dholmes David Holmes
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

                Created:
                Updated:
                Resolved: