Josh Byster created ARTEMIS-5036:
------------------------------------
Summary: Performance regression with Micrometer
Key: ARTEMIS-5036
URL: https://issues.apache.org/jira/browse/ARTEMIS-5036
Project: ActiveMQ Artemis
Issue Type: Bug
Affects Versions: 2.36.0
Reporter: Josh Byster
With the bump to Micrometer v1.13.2, I pinpointed a clear performance
regression where the broker completely spiraled on temp queue deletion:
https://github.com/micrometer-metrics/micrometer/issues/5466
Moreover, this looping happens in a synchronized block in PostOffice, which
completely stops other critical tasks.
{code:java}
java.base/java.lang.Thread.getStackTrace(Thread.java:1602)
io.micrometer.core.instrument.Tags.equals(Tags.java:177)
java.base/java.util.Objects.equals(Objects.java:77)
io.micrometer.core.instrument.Meter$Id.equals(Meter.java:359)
io.micrometer.core.instrument.util.MeterEquivalence.equals(MeterEquivalence.java:39)
io.micrometer.core.instrument.AbstractMeter.equals(AbstractMeter.java:43)
io.micrometer.core.instrument.MeterRegistry.remove(MeterRegistry.java:762)
io.micrometer.core.instrument.MeterRegistry.remove(MeterRegistry.java:723)
org.apache.activemq.artemis.core.server.metrics.MetricsManager.remove(MetricsManager.java:183)
org.apache.activemq.artemis.core.server.management.impl.ManagementServiceImpl.unregisterMeters(ManagementServiceImpl.java:353)
org.apache.activemq.artemis.core.server.management.impl.ManagementServiceImpl.unregisterAddress(ManagementServiceImpl.java:293)
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.removeAddressInfo(PostOfficeImpl.java:896)
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.removeAddressInfo(ActiveMQServerImpl.java:3981)
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.removeAddressInfo(ActiveMQServerImpl.java:3955)
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:2514)
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.destroyQueue(ActiveMQServerImpl.java:2452)
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl$TempQueueCleanerUpper.run(ServerSessionImpl.java:1160)
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl$TempQueueCleanerUpper.connectionFailed(ServerSessionImpl.java:1174)
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.callFailureListeners(OpenWireConnection.java:509)
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.disconnect(OpenWireConnection.java:735)
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.disconnect(OpenWireConnection.java:480)
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processRemoveConnection(OpenWireConnection.java:1825)
org.apache.activemq.command.RemoveInfo.visit(RemoveInfo.java:73)
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java:366)
org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java:68)
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57)
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32)
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)]
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact