Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-4937

Resolve virtual thread pinning issues in client side Artemis code

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.35.0
    • None
    • Broker
    • None

    Description

      When I was testing executing WildFly workloads on a virtual thread, turning on JVM thread pinning logging (see WFLY-19536) revealed pinning happening in client-side Artemis code (e.g. sending JMS messages). This issue is to trace working with the Artemis community to resolve these issues and get the fixed code into WildFly.

      An example:

      2024-07-18 04:55:23,274 INFO  [stdout] (ForkJoinPool-1-worker-1) Thread[#297,ForkJoinPool-1-worker-1,5,CarrierThreads]
      2024-07-18 04:55:23,275 INFO  [stdout] (ForkJoinPool-1-worker-1)     java.base/java.lang.VirtualThread$VThreadContinuation.onPinned(VirtualThread.java:185)
      2024-07-18 04:55:23,275 INFO  [stdout] (ForkJoinPool-1-worker-1)     java.base/jdk.internal.vm.Continuation.onPinned0(Continuation.java:393)
      2024-07-18 04:55:23,276 INFO  [stdout] (ForkJoinPool-1-worker-1)     java.base/java.lang.VirtualThread.parkNanos(VirtualThread.java:631)
      2024-07-18 04:55:23,276 INFO  [stdout] (ForkJoinPool-1-worker-1)     java.base/java.lang.System$2.parkVirtualThread(System.java:2648)
      2024-07-18 04:55:23,276 INFO  [stdout] (ForkJoinPool-1-worker-1)     java.base/jdk.internal.misc.VirtualThreads.park(VirtualThreads.java:67)
      2024-07-18 04:55:23,276 INFO  [stdout] (ForkJoinPool-1-worker-1)     java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:267)
      2024-07-18 04:55:23,276 INFO  [stdout] (ForkJoinPool-1-worker-1)     java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:756)
      2024-07-18 04:55:23,276 INFO  [stdout] (ForkJoinPool-1-worker-1)     java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1126)
      2024-07-18 04:55:23,276 INFO  [stdout] (ForkJoinPool-1-worker-1)     java.base/java.util.concurrent.CountDownLatch.await(CountDownLatch.java:276)
      2024-07-18 04:55:23,277 INFO  [stdout] (ForkJoinPool-1-worker-1)     org.apache.activemq.artemis.client@2.35.0//org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.waitForTopology(ClientSessionFactoryImpl.java:544)
      2024-07-18 04:55:23,277 INFO  [stdout] (ForkJoinPool-1-worker-1)     org.apache.activemq.artemis.client@2.35.0//org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:773)
      2024-07-18 04:55:23,277 INFO  [stdout] (ForkJoinPool-1-worker-1)     org.apache.activemq.artemis.client@2.35.0//org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:913) <== monitors:1

      Attachments

        1. WFLY-19566-monitors.txt
          68 kB
          Brian Edward Stansberry

        Activity

          People

            Unassigned Unassigned
            ehsavoie Emmanuel Hugonnet
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: