Uploaded image for project: 'JBoss A-MQ'
  1. JBoss A-MQ
  2. ENTMQ-2255

managementContext suppressMBean filters registration but still tracks objects as registered in error

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • JBoss A-MQ 6.3.x
    • JBoss A-MQ 6.3
    • broker, jmx
    • None
    • +

    Description

      managementContext suppressMBean is used to reduce the load on the mbean server and management context, however tracking the object names in the copy on write map has an impact as numbers grow. This unnecessary tracking (add remove from CopyOnWriteArraySet) can be removed.

      example stack trace:

      "ActiveMQ NIO Worker 6" #142868 daemon prio=5 os_prio=0 tid=0x00007fd528014800 nid=0x14ce runnable [0x00007fd515ce4000]
         java.lang.Thread.State: RUNNABLE
      	at java.util.concurrent.CopyOnWriteArrayList.indexOf(CopyOnWriteArrayList.java:198)
      	at java.util.concurrent.CopyOnWriteArrayList.addIfAbsent(CopyOnWriteArrayList.java:614)
      	at java.util.concurrent.CopyOnWriteArraySet.add(CopyOnWriteArraySet.java:261)
      	at org.apache.activemq.broker.jmx.ManagedRegionBroker.registerDestination(ManagedRegionBroker.java:331)
      	at org.apache.activemq.broker.jmx.ManagedRegionBroker.register(ManagedRegionBroker.java:176)
      	at org.apache.activemq.broker.jmx.ManagedTopicRegion.createDestination(ManagedTopicRegion.java:57)
      	at org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:138)
      	at org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:366)
      	at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:173)
      	at org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:241)
      	at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:173)
      	at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:173)
      	at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:173)
      	at org.apache.activemq.plugin.AbstractRuntimeConfigurationBroker.addDestination(AbstractRuntimeConfigurationBroker.java:93)
      	at org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:178)
      	at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:173)
      	at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:173)
      	at org.apache.activemq.security.AuthorizationBroker.addDestination(AuthorizationBroker.java:118)
      	at org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:178)
      	at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:480)
      	at org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:296)
      	at org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBroker.java:888)
      	at org.apache.activemq.advisory.AdvisoryBroker.fireConsumerAdvisory(AdvisoryBroker.java:838)
      	at org.apache.activemq.advisory.AdvisoryBroker.fireConsumerAdvisory(AdvisoryBroker.java:824)
      	at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:150)
      	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:103)
      	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:103)
      	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:103)
      	at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:108)
      	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:103)
      	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:103)
      	at org.apache.activemq.security.AuthorizationBroker.addConsumer(AuthorizationBroker.java:183)
      	at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:108)
      	at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:696)
      	at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:352)
      	at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:326)
      	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:190)
      	at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:45)
      	at org.apache.activemq.transport.mqtt.MQTTInactivityMonitor.onCommand(MQTTInactivityMonitor.java:162)
      	at org.apache.activemq.transport.mqtt.MQTTTransportFilter.sendToActiveMQ(MQTTTransportFilter.java:106)
      	at org.apache.activemq.transport.mqtt.MQTTProtocolConverter.sendToActiveMQ(MQTTProtocolConverter.java:181)
      	at org.apache.activemq.transport.mqtt.strategy.AbstractMQTTSubscriptionStrategy.doSubscribe(AbstractMQTTSubscriptionStrategy.java:210)
      	at org.apache.activemq.transport.mqtt.strategy.MQTTVirtualTopicSubscriptionStrategy.restoreDurableQueue(MQTTVirtualTopicSubscriptionStrategy.java:253)
      	at org.apache.activemq.transport.mqtt.strategy.MQTTVirtualTopicSubscriptionStrategy.onConnect(MQTTVirtualTopicSubscriptionStrategy.java:77)
      	at org.apache.activemq.transport.mqtt.MQTTProtocolConverter$1$1.onResponse(MQTTProtocolConverter.java:337)
      	at org.apache.activemq.transport.mqtt.MQTTProtocolConverter.onActiveMQCommand(MQTTProtocolConverter.java:408)
      	at org.apache.activemq.transport.mqtt.MQTTTransportFilter.oneway(MQTTTransportFilter.java:81)
      	at org.apache.activemq.transport.mqtt.MQTTInactivityMonitor.doOnewaySend(MQTTInactivityMonitor.java:185)
      	at org.apache.activemq.transport.mqtt.MQTTInactivityMonitor.oneway(MQTTInactivityMonitor.java:174)
      	at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)
      	at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1461)
      	at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:971)
      	at org.apache.activemq.broker.TransportConnection.dispatchSync(TransportConnection.java:927)
      	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:192)
      	at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:45)
      	at org.apache.activemq.transport.mqtt.MQTTInactivityMonitor.onCommand(MQTTInactivityMonitor.java:162)
      	at org.apache.activemq.transport.mqtt.MQTTTransportFilter.sendToActiveMQ(MQTTTransportFilter.java:106)
      	at org.apache.activemq.transport.mqtt.MQTTProtocolConverter.sendToActiveMQ(MQTTProtocolConverter.java:181)
      	at org.apache.activemq.transport.mqtt.MQTTProtocolConverter$1.onResponse(MQTTProtocolConverter.java:312)
      	at org.apache.activemq.transport.mqtt.MQTTProtocolConverter.onActiveMQCommand(MQTTProtocolConverter.java:408)
      	at org.apache.activemq.transport.mqtt.MQTTTransportFilter.oneway(MQTTTransportFilter.java:81)
      	at org.apache.activemq.transport.mqtt.MQTTInactivityMonitor.doOnewaySend(MQTTInactivityMonitor.java:185)
      	at org.apache.activemq.transport.mqtt.MQTTInactivityMonitor.oneway(MQTTInactivityMonitor.java:174)
      	at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)
      	at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1461)
      	at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:971)
      	at org.apache.activemq.broker.TransportConnection.dispatchSync(TransportConnection.java:927)
      	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:192)
      	at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:45)
      	at org.apache.activemq.transport.mqtt.MQTTInactivityMonitor.onCommand(MQTTInactivityMonitor.java:162)
      	at org.apache.activemq.transport.mqtt.MQTTTransportFilter.sendToActiveMQ(MQTTTransportFilter.java:106)
      	at org.apache.activemq.transport.mqtt.MQTTProtocolConverter.sendToActiveMQ(MQTTProtocolConverter.java:181)
      	at org.apache.activemq.transport.mqtt.MQTTProtocolConverter.onMQTTConnect(MQTTProtocolConverter.java:285)
      	at org.apache.activemq.transport.mqtt.MQTTProtocolConverter.onMQTTCommand(MQTTProtocolConverter.java:204)
      	at org.apache.activemq.transport.mqtt.MQTTTransportFilter.onCommand(MQTTTransportFilter.java:94)
      	at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
      	at org.apache.activemq.transport.nio.NIOSSLTransport.doConsume(NIOSSLTransport.java:440)
      	at org.apache.activemq.transport.mqtt.MQTTCodec$1.onFrame(MQTTCodec.java:65)
      	at org.apache.activemq.transport.mqtt.MQTTCodec.processCommand(MQTTCodec.java:90)
      	at org.apache.activemq.transport.mqtt.MQTTCodec.access$400(MQTTCodec.java:26)
      	at org.apache.activemq.transport.mqtt.MQTTCodec$4.parse(MQTTCodec.java:213)
      	at org.apache.activemq.transport.mqtt.MQTTCodec$3.parse(MQTTCodec.java:179)
      	at org.apache.activemq.transport.mqtt.MQTTCodec$2.parse(MQTTCodec.java:138)
      	at org.apache.activemq.transport.mqtt.MQTTCodec.parse(MQTTCodec.java:76)
      	at org.apache.activemq.transport.mqtt.MQTTNIOSSLTransport.processCommand(MQTTNIOSSLTransport.java:57)
      	at org.apache.activemq.transport.nio.NIOSSLTransport.serviceRead(NIOSSLTransport.java:221)
      	at org.apache.activemq.transport.nio.NIOSSLTransport$2.onSelect(NIOSSLTransport.java:176)
      	at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:98)
      	at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:118)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
         Locked ownable synchronizers:
      	- <0x00000002cc495ee0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
      	- <0x000000035ca26840> (a java.util.concurrent.ThreadPoolExecutor$Worker)
      	- <0x0000000579402cd8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
      	- <0x0000000579402d38> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

      Attachments

        Activity

          People

            gtully@redhat.com Gary Tully
            gtully@redhat.com Gary Tully
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: