Commit Graph

11004 Commits

Author SHA1 Message Date
Clebert Suconic 7860fd5fa9 ARTEMIS-5035 M_and_M_FactoryTest cannot use OpenWire as it's using JMS2 2024-09-18 11:33:05 -04:00
Justin Bertram b79db8ed66 ARTEMIS-4781 AMQP message leaking large message file
When an AMQP message is sent over a cluster bridge it is embedded into a
Core message. If the size of the AMQP message is barely beneath the
minLargeMessageSize then the Core message in which the AMQP message is
embedded will become a large message. The on the bridge target when the
embedded AMQP message is extracted from the large Core message it will
not be considered "large." In this situation the file for the large Core
message will leak.

Thanks to Erwin Dondorp for the test. I renamed and refactored it a bit,
but the fundamentals came from Erwin.
2024-09-17 14:42:37 +01:00
Justin Bertram dc64d9be78 ARTEMIS-5045 add test + polish 2024-09-16 10:17:03 +01:00
fogninid 91ddc6a2e7 ARTEMIS-5045 don't change the Micrometer MeterRegistry config
For embedded use-cases the Micrometer MeterRegistry may be passed in
from the application and used for other meters unrelated to the broker.
Therefore, the broker should not change the config of the MeterRegistry
(e.g. by adding common tags to all meters) as the config change(s) may
be incompatible with the needs of the embedding application.
2024-09-16 10:17:03 +01:00
Robbie Gemmell 239c3d3239 ARTEMIS-5046: update to groovy 4.0.23 2024-09-13 14:55:14 +01:00
Robbie Gemmell b443331bba NO-JIRA: have dependabot ignore errorprone >= 2.32.0 since it needs Java 17+ 2024-09-12 14:32:10 +01:00
Laurent Dauvilaire 9702053af2 ARTEMIS-5033 Avoid NPE on method processAddSession in OpenWireConnection
The class org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection in ActiveMQ Artemis
is based on org.apache.activemq.broker.TransportConnection from ActiveMQ Classic,
and in the latter there is null check that doesn't exist in the former.
Therefore, I think it's worth adding this check.

The info should never be null since it is passed in off the wire from the OpenWire marshaller,
and state.getSessionIds() should also never return null because the underlying ConcurrentMap is initialized when ConnectionState is created.
2024-09-10 22:08:52 -05:00
Justin Bertram 1503a40fe7 ARTEMIS-4965 mitigate NPE when missing SQL property 2024-09-10 18:03:21 +01:00
Justin Bertram eb19d586fd ARTEMIS-5044 bump io.micrometer:micrometer-core from 1.13.3 to 1.13.4 2024-09-10 11:15:26 -05:00
Justin Bertram fff4eb06cc ARTEMIS-5043 bump log4j.version from 2.23.1 to 2.24.0 2024-09-10 11:10:23 -05:00
Justin Bertram 48e8de20e9 ARTEMIS-5015 bump org.jboss.marshalling:jboss-marshalling-river from 2.1.4.Final to 2.2.1.Final 2024-09-10 11:08:13 -05:00
Justin Bertram 46c7cb445c ARTEMIS-4182 support client ID config on bridges
Allow the client ID to be configured on normal bridge as well as
cluster-connection bridges. This makes the bridge connection easier to
identify on the target broker.
2024-09-10 16:46:20 +01:00
Robbie Gemmell 2365ebf0a7 ARTEMIS-5032: tweak test asserts following a failure in CI 2024-09-10 13:14:44 +01:00
Clebert Suconic e322a418ce ARTEMIS-5010 Adding Failback scenario to ReplicatedBothNodesMirrorTest 2024-09-09 15:50:48 -04:00
Timothy Bish 5b3b995d61 ARTEMIS-4978 Fix AMQP messages not matching selector on replay
When using the replay functionality the application of filters to
the replayed messages fails to match against AMQP messages due to the
message not getting scanned when some message values are accessed.
2024-09-09 14:34:14 +01:00
Justin Bertram 5db043da0f ARTEMIS-5023 web temp directory cleaner now moot
Before the changes in 15dd24754a temporary
web resources could proliferate and consume inordinate amounts of disk
space because their directory names were generated uniquely every time
Jetty was started. However, now that they are deterministic no
proliferation is possible. Jetty will create the directories when it
starts, remove them when it stops, and if it fails to clean-up on
shutdown (e.g. crash from OOME) it will clean-up and recreate them when
it starts.

Therefore, our own house-keeping of those directories is no longer
needed and, in fact, causes problems. For example, when executing the
`restartEmbeddedWebServer` management operation the temp web resources
will actually be removed inadvertently causing the web console to fail.

This commit removes the web temp house-keeping logic as well as the
related tests. It also modifies & adds tests to ensure Jetty does this
house-keeping on its own.
2024-09-09 12:57:06 +01:00
Timothy Bish eef3ea9eb3 ARTEMIS-5039 Update netty to version 4.1.113.Final 2024-09-06 12:52:38 -07:00
Timothy Bish acc415126f NO-JIRA Fix intermittent test failure 2024-09-06 11:15:57 -04:00
Clebert Suconic daba842984 ARTEMIS-5035 Change some tests to use a random choice for protocol 2024-09-05 17:04:48 -04:00
Justin Bertram 8b265f4625 ARTEMIS-4804 & ARTEMIS-4805 mitigate NPEs in ScaleDownHandler 2024-09-05 13:57:47 -04:00
Timothy Bish ec8026e4d6 ARTEMIS-5032 Ensure AMQP message priority is honored after restart
Ensure that on server restart the original priority value assigned to an
AMQP message is used when dispatching durable messages from the store.
The AMQP Header section is scanned if present and the priority value
is recovered in an efficient manner.
2024-09-05 13:56:28 -04:00
Justin Bertram 50c20554d8 ARTEMIS-5034 improve & document OpenWire protocol logging 2024-09-05 11:15:11 -05:00
Justin Bertram defa911143 ARTEMIS-5028 use a default filter when none is specified for mngmnt ops
This is a small usability improvement for management whereby
invocations of some operations no longer require JSON boilerplate. It
impacts the following operations on the ActiveMQServerControl:

 - listConnections
 - listSessions
 - listAddresses
 - listQueues
 - listConsumers
 - listProducers
2024-09-05 12:04:41 -04:00
Clebert Suconic 7fb9aa5f97 ARTEMIS-5010 Addressing deadlock on AckManager
AckManager.flush would hold a lock on ackManager, There was a possible deadlock with MirrorTarget:

Thread 1:

        at org.apache.activemq.artemis.protocol.amqp.connect.mirror.AckManager.addRetry(AckManager.java:393)
        - waiting to lock <0x00000007990a13e8> (a org.apache.activemq.artemis.protocol.amqp.connect.mirror.AckManager)
        at org.apache.activemq.artemis.protocol.amqp.connect.mirror.AckManager.ack(AckManager.java:418)
        at org.apache.activemq.artemis.protocol.amqp.connect.mirror.AMQPMirrorControllerTarget.performAck(AMQPMirrorControllerTarget.java:479)
        at org.apache.activemq.artemis.protocol.amqp.connect.mirror.AMQPMirrorControllerTarget.postAcknowledge(AMQPMirrorControllerTarget.java:461)
        at org.apache.activemq.artemis.protocol.amqp.connect.mirror.AMQPMirrorControllerTarget.actualDelivery(AMQPMirrorControllerTarget.java:318)
        at org.apache.activemq.artemis.protocol.amqp.proton.ProtonAbstractReceiver.onMessageComplete(ProtonAbstractReceiver.java:361)

Thread 2:

        at jdk.internal.misc.Unsafe.park(java.base@11.0.8/Native Method)
        - parking to wait for  <0x000000079de0af38> (a java.util.concurrent.CountDownLatch$Sync)
        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.8/LockSupport.java:234)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(java.base@11.0.8/AbstractQueuedSynchronizer.java:1079)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(java.base@11.0.8/AbstractQueuedSynchronizer.java:1369)
        at java.util.concurrent.CountDownLatch.await(java.base@11.0.8/CountDownLatch.java:278)
        at org.apache.activemq.artemis.protocol.amqp.connect.mirror.AMQPMirrorControllerTarget.flush(AMQPMirrorControllerTarget.java:230)
        at org.apache.activemq.artemis.protocol.amqp.connect.mirror.AckManager$$Lambda$601/0x00000008005c3040.accept(Unknown Source)
        at java.lang.Iterable.forEach(java.base@11.0.8/Iterable.java:75)
        at org.apache.activemq.artemis.protocol.amqp.connect.mirror.AckManager.flushMirrorTargets(AckManager.java:184)
        - locked <0x00000007990a13e8> (a org.apache.activemq.artemis.protocol.amqp.connect.mirror.AckManager)
        at org.apache.activemq.artemis.protocol.amqp.connect.mirror.AckManager.initRetry(AckManager.java:162)
2024-09-04 16:19:52 -04:00
Justin Bertram 74691b8b61 ARTEMIS-5031 bump owasp.version from 10.0.3 to 10.0.4 2024-09-04 14:02:59 -05:00
Justin Bertram f302f47e88 ARTEMIS-5030 bump com.puppycrawl.tools:checkstyle from 10.18.0 to 10.18.1 2024-09-04 14:01:20 -05:00
Justin Bertram 8fb7573fab ARTEMIS-5029 bump jetty.version from 10.0.23 to 10.0.24 2024-09-04 13:59:35 -05:00
Robbie Gemmell 9133cdb466 ARTEMIS-4962: add test, clarify some related comments 2024-09-03 13:52:10 -05:00
Justin Bertram d929c5dd66 ARTEMIS-4962 mitigate NPE in FilterImpl 2024-09-03 13:52:10 -05:00
Gary Tully 57adcd3286 NO-JIRA sanity test of mqtt shared sub publish with fqqn 2024-09-03 10:44:25 -05:00
Justin Bertram 7605bd673f ARTEMIS-4915 clarify 'total' server metrics' descriptions 2024-09-03 12:13:14 +01:00
Domenico Francesco Bruscino bf9f9d2203 ARTEMIS-5026 Upgrade commons-compress to 1.27.1 2024-09-03 09:19:08 +01:00
Justin Bertram 306dfc9327 ARTEMIS-4957 remove unused variables in Redistributor 2024-09-02 14:53:14 +01:00
Justin Bertram 73f18535b5 ARTEMIS-4958 remove unused variable in AddressImpl 2024-09-02 13:00:34 +01:00
Justin Bertram ad02130560 ARTEMIS-4935 remove unused variable in ProcessBuilder.ProcessLogger 2024-09-02 12:52:20 +01:00
Justin Bertram 4c0a47924c ARTEMIS-5025 bump org.jboss.marshalling:jboss-marshalling-river from 2.1.4.Final to 2.2.0.Final 2024-08-30 18:44:26 -05:00
Justin Bertram 6a9f4bdb36 ARTEMIS-5024 bump org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0 2024-08-30 18:42:06 -05:00
fogninid 9aa089b78b ARTEMIS-5013 do not override Netty leak detection
do not override the configured netty leak detection from client code.
Use the same logic as server, disabling the default only if no
properties are configured in the JVM.
See 127ce3a84a
2024-08-30 14:31:48 -05:00
Yashashree Chopada f9b912baf0 ARTEMIS-4972 Use Lock in start() for Binding Variables 2024-08-30 10:39:03 -05:00
Clebert Suconic ffafbf350a ARTEMIS-5001 Relax consistency requirement on OperationContext for Mirror send operations.
Send operations should ignore replication, while the ack of the message should wait a round trip in replication.
That will allow us to ack the message faster and still have consistency with its replica.
2024-08-29 14:42:48 -04:00
Robbie Gemmell 2b9b81142b ARTEMIS-5022: update selenium to 4.24.0 2024-08-29 18:04:51 +01:00
Robbie Gemmell bca97dc706 ARTEMIS-5021: update mockito to 5.13.0 2024-08-29 18:01:34 +01:00
Robbie Gemmell 9cd31dd877 ARTEMIS-5020: update maven-pmd-plugin to 3.25.0 2024-08-29 13:03:31 +01:00
Robbie Gemmell eb5049f5a0 ARTEMIS-5019: update error-prone to 2.31.0 2024-08-29 13:03:08 +01:00
Justin Bertram d0c83af40e ARTEMIS-5017 bridge leaks ClientSessionFactory instance on reconnect attempt 2024-08-28 19:39:00 -04:00
Clebert Suconic 898c09cb93 ARTEMIS-5010 just a better description on a log.warn 2024-08-28 18:59:05 -04:00
Justin Bertram 465e985388 ARTEMIS-5018 eliminate deprecated use of Class.newInstance 2024-08-28 17:30:19 -04:00
Clebert Suconic 4352ebae5f ARTEMIS-5010 Addressing comments from PR https://github.com/apache/activemq-artemis/pull/5186 2024-08-28 14:08:49 -04:00
Clebert Suconic 4ba9f67d80 ARTEMIS-5010 AckManager records are not replicated 2024-08-28 11:53:16 -04:00
Justin Bertram 8a56d2ea33 ARTEMIS-4906 CentOS 7 is EOL so remove Docker file 2024-08-28 16:05:48 +01:00