You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "chenyouxing (JIRA)" <ji...@apache.org> on 2018/11/28 07:58:00 UTC

[jira] [Commented] (AMQ-7113) a lot of "BrokerService" threads are blocked by another thread which is doing the operation of java.util.regex.Matcher.matches in the context of org.apache.activemq.filter.ComparisonExpression$LikeExpression.evaluate

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

chenyouxing commented on AMQ-7113:
----------------------------------

?

> a lot of "BrokerService" threads are blocked by another thread which is doing the operation of  java.util.regex.Matcher.matches in the context of org.apache.activemq.filter.ComparisonExpression$LikeExpression.evaluate
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-7113
>                 URL: https://issues.apache.org/jira/browse/AMQ-7113
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.14.4
>         Environment: Linux version 3.10.0-327.el7.x86_64
> JDK Version: open-jdk 1.8
>            Reporter: chenyouxing
>            Priority: Major
>
> thread dump of the blocking thread as below: 
> "ActiveMQ BrokerService[databus_amq_crm] Task-26508" #203818 daemon prio=5 os_prio=0 tid=0x00007f9138297800 nid=0x5910 runnable [0x00007f90b43fe000]
>    java.lang.Thread.State: RUNNABLE
>  at java.util.regex.Pattern$Curly.match1(Pattern.java:4300)
>  at java.util.regex.Pattern$Curly.match(Pattern.java:4236)
>  at java.util.regex.Pattern$Begin.match(Pattern.java:3525)
>  at java.util.regex.Matcher.match(Matcher.java:1270)
>  at java.util.regex.Matcher.matches(Matcher.java:604)
>  at org.apache.activemq.filter.ComparisonExpression$LikeExpression.evaluate(ComparisonExpression.java:151)
>  at org.apache.activemq.filter.LogicExpression$1.evaluate(LogicExpression.java:45)
>  at org.apache.activemq.filter.LogicExpression.matches(LogicExpression.java:90)
>  at org.apache.activemq.broker.region.AbstractSubscription.matches(AbstractSubscription.java:108)
>  at org.apache.activemq.broker.region.policy.SimpleDispatchSelector.canDispatch(SimpleDispatchSelector.java:46)
>  at org.apache.activemq.broker.region.QueueDispatchSelector.canSelect(QueueDispatchSelector.java:56)
>  at org.apache.activemq.broker.region.Queue.doActualDispatch(Queue.java:2139)
>  at org.apache.activemq.broker.region.Queue.doDispatch(Queue.java:2084)
>  at org.apache.activemq.broker.region.Queue.removeSubscription(Queue.java:593)
>  at org.apache.activemq.broker.region.DestinationFilter.removeSubscription(DestinationFilter.java:127)
>  at org.apache.activemq.broker.region.virtual.MappedQueueFilter.removeSubscription(MappedQueueFilter.java:97)
>  - locked <0x00000005c1775be0> (a org.apache.activemq.broker.region.virtual.MappedQueueFilter)
>  at org.apache.activemq.broker.region.AbstractRegion.removeConsumer(AbstractRegion.java:477)
>  at org.apache.activemq.broker.region.RegionBroker.removeConsumer(RegionBroker.java:438)
>  at org.apache.activemq.broker.jmx.ManagedRegionBroker.removeConsumer(ManagedRegionBroker.java:258)
>  at org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:138)
>  at org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:138)
>  at org.apache.activemq.broker.MutableBrokerFilter.removeConsumer(MutableBrokerFilter.java:143)
>  at org.apache.activemq.broker.TransportConnection.processRemoveConsumer(TransportConnection.java:738)
>  at org.apache.activemq.broker.TransportConnection.processRemoveSession(TransportConnection.java:777)
>  at org.apache.activemq.broker.TransportConnection.processRemoveConnection(TransportConnection.java:888)
>  - locked <0x00000005ddde7a68> (a org.apache.activemq.broker.jmx.ManagedTransportConnection)
>  at org.apache.activemq.broker.TransportConnection.doStop(TransportConnection.java:1234)
>  at org.apache.activemq.broker.TransportConnection$4.run(TransportConnection.java:1164)
>  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)
>    Locked ownable synchronizers:
>  - <0x00000005c0d9c7a0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
>  - <0x00000005c3328390> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
>  - <0x00000005ddc64a38> (a java.util.concurrent.ThreadPoolExecutor$Worker)
>  - <0x00000005dddeba10> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
>  
> and typical blocked threads'(count: 1400+) dump  as below:
> "ActiveMQ BrokerService[databus_amq_crm] Task-26418" #197084 daemon prio=5 os_prio=0 tid=0x00007f91b40cb000 nid=0x3b3c waiting for monitor entry [0x00007f9086321000]
>    java.lang.Thread.State: BLOCKED (on object monitor)
>  at org.apache.activemq.broker.region.virtual.MappedQueueFilter.removeSubscription(MappedQueueFilter.java:97)
>  - waiting to lock <0x00000005c1775be0> (a org.apache.activemq.broker.region.virtual.MappedQueueFilter)
>  at org.apache.activemq.broker.region.AbstractRegion.removeConsumer(AbstractRegion.java:477)
>  at org.apache.activemq.broker.region.RegionBroker.removeConsumer(RegionBroker.java:438)
>  at org.apache.activemq.broker.jmx.ManagedRegionBroker.removeConsumer(ManagedRegionBroker.java:258)
>  at org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:138)
>  at org.apache.activemq.broker.BrokerFilter.removeConsumer(BrokerFilter.java:138)
>  at org.apache.activemq.broker.MutableBrokerFilter.removeConsumer(MutableBrokerFilter.java:143)
>  at org.apache.activemq.broker.TransportConnection.processRemoveConsumer(TransportConnection.java:738)
>  at org.apache.activemq.broker.TransportConnection.processRemoveSession(TransportConnection.java:777)
>  at org.apache.activemq.broker.TransportConnection.processRemoveConnection(TransportConnection.java:888)
>  - locked <0x00000005dbcd15c8> (a org.apache.activemq.broker.jmx.ManagedTransportConnection)
>  at org.apache.activemq.broker.TransportConnection.doStop(TransportConnection.java:1234)
>  at org.apache.activemq.broker.TransportConnection$4.run(TransportConnection.java:1164)
>  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)
>    Locked ownable synchronizers:
>  - <0x00000005dbcd1990> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
>  - <0x00000005dd9fab30> (a java.util.concurrent.ThreadPoolExecutor$Worker)
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)