Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-1995

Enabling TRACE-level logging in the broker leads to ConcurrentModificationException and failed operations

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • AMQ 7.2.2.GA
    • AMQ 7.2.0.GA
    • broker-core
    • None
    • Release Notes
    • Hide
      In previous releases, multiple threads could concurrently modify a message's properties. This resulted in WARN messages in the log when TRACE-level logging was enabled. Now, concurrent access to message properties is done safely and the WARN messages in the log related to this issue no longer occur.
      Show
      In previous releases, multiple threads could concurrently modify a message's properties. This resulted in WARN messages in the log when TRACE-level logging was enabled. Now, concurrent access to message properties is done safely and the WARN messages in the log related to this issue no longer occur.
    • Documented as Resolved Issue
    • AMQ Broker 1839

    Description

      Enabling TRACE-level logging in the broker leads periodically to the following exception being thrown, and messaging operations fail. It is therefore impossible to collect diagnostics at this level in a production environment.

      2018-09-20 11:23:52,493 WARN  [org.apache.activemq.artemis.core.message.impl.CoreMessage] Error creating String for message: : java.util.ConcurrentModificationException
      	at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) [rt.jar:1.8.0_102]
      	at java.util.HashMap$EntryIterator.next(HashMap.java:1471) [rt.jar:1.8.0_102]
      	at java.util.HashMap$EntryIterator.next(HashMap.java:1469) [rt.jar:1.8.0_102]
      	at org.apache.activemq.artemis.utils.collections.TypedProperties.toString(TypedProperties.java:464) [artemis-commons-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at java.lang.String.valueOf(String.java:2994) [rt.jar:1.8.0_102]
      	at java.lang.StringBuilder.append(StringBuilder.java:131) [rt.jar:1.8.0_102]
      	at org.apache.activemq.artemis.core.message.impl.CoreMessage.toString(CoreMessage.java:1200) [artemis-core-client-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at java.lang.String.valueOf(String.java:2994) [rt.jar:1.8.0_102]
      	at java.lang.StringBuilder.append(StringBuilder.java:131) [rt.jar:1.8.0_102]
      	at org.apache.activemq.artemis.core.protocol.core.impl.wireformat.MessagePacket.getParentString(MessagePacket.java:39) [artemis-core-client-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionReceiveMessage.toString(SessionReceiveMessage.java:95) [artemis-core-client-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at java.lang.String.valueOf(String.java:2994) [rt.jar:1.8.0_102]
      	at java.lang.StringBuilder.append(StringBuilder.java:131) [rt.jar:1.8.0_102]
      	at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.send(ChannelImpl.java:274) [artemis-core-client-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBatched(ChannelImpl.java:239) [artemis-core-client-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.core.protocol.core.impl.CoreSessionCallback.sendMessage(CoreSessionCallback.java:128) [artemis-server-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.deliverStandardMessage(ServerConsumerImpl.java:1106) [artemis-server-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:464) [artemis-server-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.proceedDeliver(QueueImpl.java:2938) [artemis-server-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.deliver(QueueImpl.java:2406) [artemis-server-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.access$2000(QueueImpl.java:107) [artemis-server-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl$DeliverRunner.run(QueueImpl.java:3211) [artemis-server-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) [artemis-commons-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) [artemis-commons-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66) [artemis-commons-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_102]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_102]
      	at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.6.1.amq-720008.jar:2.6.1.amq-720008]
      

      Attachments

        Issue Links

          Activity

            People

              rhn-support-jbertram Justin Bertram
              rhn-support-kboone Kevin Boone
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: