[
https://issues.apache.org/jira/browse/ARTEMIS-4937?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Bertram updated ARTEMIS-4937:
------------------------------------
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:
{noformat}
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)
[email protected]//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)
[email protected]//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)
[email protected]//org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:913)
<== monitors:1{noformat}
was:
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.
See occurrences of 'onPinned' in
https://ci.wildfly.org/repository/download/WF_MainNightlyJobs_StandardLinuxJdk21/446569:id/testsuite/integration/basic/target/wildfly/standalone/log/server.log.
Lines in the stack trace annotated with "<== monitor" show where a monitor
lock was taken that results in pinning when blocking code executes.
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)
[email protected]//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)
[email protected]//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)
[email protected]//org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:913)
<== monitors:1
> Resolve virtual thread pinning issues in client side Artemis code
> -----------------------------------------------------------------
>
> Key: ARTEMIS-4937
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4937
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Affects Versions: 2.35.0
> Reporter: Emmanuel Hugonnet
> Priority: Major
>
> 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:
> {noformat}
> 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)
> [email protected]//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)
> [email protected]//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)
> [email protected]//org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:913)
> <== monitors:1{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact