clebertsuconic commented on PR #5593: URL: https://github.com/apache/activemq-artemis/pull/5593#issuecomment-2811683663
I saw Justin started a run of your PR in one of our CIs.. Just out of coincidence I saw that my Jenkins was stuck, I logged into the POD and I saw this deadlock while running org.apache.activemq.artemis.tests.integration.management.ManagementWithPagingServerTest ``` Java stack information for the threads listed above: =================================================== "Thread-1 (ActiveMQ-server-ActiveMQServerImpl::name=localhost)": at org.apache.activemq.artemis.core.server.impl.RefsOperation.afterCommit(RefsOperation.java:190) - waiting to lock <0x000000009d807300> (a org.apache.activemq.artemis.core.server.impl.QueueImpl) at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl.afterCommit(TransactionImpl.java:590) - locked <0x000000009cf16870> (a org.apache.activemq.artemis.core.transaction.impl.TransactionImpl) at org.apache.activemq.artemis.core.transaction.impl.TransactionImpl$2.done(TransactionImpl.java:317) at org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl.lambda$execute$0(OperationContextImpl.java:369) at org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl$$Lambda$977/0x00007f471c4cd588.run(Unknown Source) at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59) at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) at org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$756/0x00007f471c30f020.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.14/ThreadPoolExecutor.java:1136) at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.14/ThreadPoolExecutor.java:635) at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120) "Thread-5073": at jdk.internal.misc.Unsafe.park(java.base@17.0.14/Native Method) - parking to wait for <0x000000009d807d78> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) at java.util.concurrent.locks.LockSupport.park(java.base@17.0.14/LockSupport.java:211) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@17.0.14/AbstractQueuedSynchronizer.java:715) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@17.0.14/AbstractQueuedSynchronizer.java:938) at java.util.concurrent.locks.ReentrantLock$Sync.lock(java.base@17.0.14/ReentrantLock.java:153) at java.util.concurrent.locks.ReentrantLock.lock(java.base@17.0.14/ReentrantLock.java:322) at org.apache.activemq.artemis.core.server.impl.QueueImpl.iterQueue(QueueImpl.java:2019) at org.apache.activemq.artemis.core.server.impl.QueueImpl.copyReference(QueueImpl.java:2510) - locked <0x000000009d807300> (a org.apache.activemq.artemis.core.server.impl.QueueImpl) at org.apache.activemq.artemis.core.management.impl.QueueControlImpl.copyMessage(QueueControlImpl.java:1380) at jdk.internal.reflect.GeneratedMethodAccessor242.invoke(Unknown Source) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.14/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.14/Method.java:569) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:72) at jdk.internal.reflect.GeneratedMethodAccessor241.invoke(Unknown Source) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@17.0.14/DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(java.base@17.0.14/Method.java:569) at sun.reflect.misc.MethodUtil.invoke(java.base@17.0.14/MethodUtil.java:262) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(java.management@17.0.14/StandardMBeanIntrospector.java:112) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(java.management@17.0.14/StandardMBeanIntrospector.java:46) at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(java.management@17.0.14/MBeanIntrospector.java:237) at com.sun.jmx.mbeanserver.PerInterface.invoke(java.management@17.0.14/PerInterface.java:138) at com.sun.jmx.mbeanserver.MBeanSupport.invoke(java.management@17.0.14/MBeanSupport.java:252) at javax.management.StandardMBean.invoke(java.management@17.0.14/StandardMBean.java:405) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(java.management@17.0.14/DefaultMBeanServerInterceptor.java:814) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(java.management@17.0.14/JmxMBeanServer.java:802) at javax.management.MBeanServerInvocationHandler.invoke(java.management@17.0.14/MBeanServerInvocationHandler.java:298) at jdk.proxy2.$Proxy105.copyMessage(jdk.proxy2/Unknown Source) at org.apache.activemq.artemis.tests.integration.management.ManagementWithPagingServerTest$ManagementCopyThread.run(ManagementWithPagingServerTest.java:491) "Thread-4 (ActiveMQ-PageExecutor-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$3@4716b1ec)": at org.apache.activemq.artemis.core.server.impl.QueueImpl.depage(QueueImpl.java:3188) - waiting to lock <0x000000009d807300> (a org.apache.activemq.artemis.core.server.impl.QueueImpl) at org.apache.activemq.artemis.core.server.impl.QueueImpl.lambda$scheduleDepage$9(QueueImpl.java:3176) at org.apache.activemq.artemis.core.server.impl.QueueImpl$$Lambda$1628/0x00007f471ca38cf0.run(Unknown Source) at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59) at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68) at org.apache.activemq.artemis.utils.actors.ProcessorBase$$Lambda$756/0x00007f471c30f020.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.14/ThreadPoolExecutor.java:1136) at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.14/ThreadPoolExecutor.java:635) at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120) Found 1 deadlock. ```` at first I thought it was non related to your PR (as I am working hard on paging right now to make sure there are no deadlocks), but as i read through your changes you changed some Iterators to use iterQueue.. and iterQueue itself will have a different locking than the previous one that was using synchronized. I think this introduces a real issue / deadlock.. you can probably flush this out by running ManagementWithPagingServerTest in a loop with your IDE (Idea has some options for that) I also suggest rebasing, but the issue I saw it wouldn't be fixed by any rebasing.. just to be on the tip of the branch. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For additional commands, e-mail: gitbox-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact