activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Francesco Nigro (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARTEMIS-1495) Creating and destroying many queues could deadlock the broker
Date Thu, 02 Nov 2017 19:21:00 GMT

    [ https://issues.apache.org/jira/browse/ARTEMIS-1495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236422#comment-16236422
] 

Francesco Nigro commented on ARTEMIS-1495:
------------------------------------------

it seems that:

{code:java}
"Thread-22 (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@3a079870)"
Id=74 TIMED_WAITING on java.util.concurrent.CountDownLatch$Sync@32a79217
	at sun.misc.Unsafe.park(Native Method)
	-  waiting on java.util.concurrent.CountDownLatch$Sync@32a79217
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328)
	at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:277)
	at org.apache.activemq.artemis.utils.FutureLatch.await(FutureLatch.java:38)
	at org.apache.activemq.artemis.core.paging.cursor.impl.PageCursorProviderImpl.waitForFuture(PageCursorProviderImpl.java:251)
	at org.apache.activemq.artemis.core.paging.cursor.impl.PageCursorProviderImpl.stop(PageCursorProviderImpl.java:243)
	at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.stop(PagingStoreImpl.java:351)
	-  locked org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl@12c2c420
	at org.apache.activemq.artemis.core.paging.impl.PagingManagerImpl.deletePageStore(PagingManagerImpl.java:271)
	at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.removeBinding(PostOfficeImpl.java:612)
	-  locked org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl@2f4948e4
	at org.apache.activemq.artemis.core.server.impl.QueueImpl.deleteQueue(QueueImpl.java:1538)
	at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1862)
	at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1819)
	at org.apache.activemq.artemis.core.server.impl.QueueManagerImpl$1.run(QueueManagerImpl.java:55)
	at org.apache.activemq.artemis.utils.ReferenceCounterUtil.decrement(ReferenceCounterUtil.java:54)
	at org.apache.activemq.artemis.core.server.impl.QueueManagerImpl.decrement(QueueManagerImpl.java:86)
	at org.apache.activemq.artemis.core.server.impl.QueueImpl.removeConsumer(QueueImpl.java:918)
	-  locked org.apache.activemq.artemis.core.server.impl.QueueImpl@4dabee6e
	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.removeItself(ServerConsumerImpl.java:546)
	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.close(ServerConsumerImpl.java:491)
	at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.closeConsumer(ServerSessionImpl.java:1278)
	at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.slowPacketHandler(ServerSessionPacketHandler.java:601)
	at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.onMessagePacket(ServerSessionPacketHandler.java:307)
	at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler$$Lambda$31/935215135.onMessage(Unknown
Source)
	at org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:33)
	at org.apache.activemq.artemis.utils.actors.ProcessorBase$ExecutorTask.run(ProcessorBase.java:53)
	at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
	at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
	at org.apache.activemq.artemis.utils.actors.ProcessorBase$ExecutorTask.run(ProcessorBase.java:53)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

	Number of locked synchronizers = 1
	- java.util.concurrent.ThreadPoolExecutor$Worker@25487dd5
{code}
Is blocking the other threads to make progress (ie removeBinding):

{code:java}
"Thread-21 (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@3a079870)"
Id=76 BLOCKED on org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl@2f4948e4
owned by "Thread-22 (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$5@3a079870)"
Id=74
	at org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.removeBinding(PostOfficeImpl.java:603)
	-  blocked on org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl@2f4948e4
	at org.apache.activemq.artemis.core.server.impl.QueueImpl.deleteQueue(QueueImpl.java:1538)
	at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1862)
	at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:1819)
	at org.apache.activemq.artemis.core.server.impl.QueueManagerImpl$1.run(QueueManagerImpl.java:55)
	at org.apache.activemq.artemis.utils.ReferenceCounterUtil.decrement(ReferenceCounterUtil.java:54)
	at org.apache.activemq.artemis.core.server.impl.QueueManagerImpl.decrement(QueueManagerImpl.java:86)
	at org.apache.activemq.artemis.core.server.impl.QueueImpl.removeConsumer(QueueImpl.java:918)
	-  locked org.apache.activemq.artemis.core.server.impl.QueueImpl@57714bc4
	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.removeItself(ServerConsumerImpl.java:546)
	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.close(ServerConsumerImpl.java:491)
	at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.closeConsumer(ServerSessionImpl.java:1278)
	at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.slowPacketHandler(ServerSessionPacketHandler.java:601)
	at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.onMessagePacket(ServerSessionPacketHandler.java:307)
	at org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler$$Lambda$31/935215135.onMessage(Unknown
Source)
	at org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:33)
	at org.apache.activemq.artemis.utils.actors.ProcessorBase$ExecutorTask.run(ProcessorBase.java:53)
	at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
	at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
	at org.apache.activemq.artemis.utils.actors.ProcessorBase$ExecutorTask.run(ProcessorBase.java:53)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

	Number of locked synchronizers = 1
	- java.util.concurrent.ThreadPoolExecutor$Worker@685114da
{code}



> Creating and destroying many queues could deadlock the broker
> -------------------------------------------------------------
>
>                 Key: ARTEMIS-1495
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1495
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>            Reporter: Francesco Nigro
>            Priority: Normal
>         Attachments: output.log
>
>
> Running a JMS test with 100 Producers/100Consumers/100 queues sending each 1000 messages
could lead the broker to deadlock while waiting the paging cursor when the (core) clients
disconnect (eg AMQ222022: Timed out waiting for paging cursor to stop FutureLatch(latch=java.util.concurrent.CountDownLatch@415d8105[Count
= 1]) OrderedExecutor(tasks=[FutureLatch(latch=java.util.concurrent.CountDownLatch@415d8105[Count
= 1])]))



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message