Commit Graph

3102 Commits

Author SHA1 Message Date
Clebert Suconic 257dd86ae2 ARTEMIS-4193 Large Message Files orphaned after server killed
This fix is scanning journal and paging for existing large messages. We will remove any large messages that do not have a corresponding record in journals or paging.
2023-03-09 08:35:51 -08:00
Domenico Francesco Bruscino 7a0bf52ed8 ARTEMIS-4190 Fix config-delete-queues when address changes 2023-03-09 09:42:57 -06:00
Domenico Francesco Bruscino bb08a573eb ARTEMIS-3640 Use client connectors for HA 2023-03-09 11:20:51 +00:00
Gary Tully 00cae02ca4 ARTEMIS-4196 - set message routing type in mqtt publish 2023-03-08 14:30:30 -06:00
Clebert Suconic ed5322c54f NO-JIRA Fixing intermittent failure on ActiveMQServerControlUsingCoreTest
This failure was because of a noise from the test itself. as the test is creating a producer, and it's measuring for a producer from the test.
it makes no sense to fix it for OverCore.. we just ignore it on UsingCore
2023-03-08 12:13:17 -05:00
Clebert Suconic 08a81a7402 I had a mistake reapplying the large message fix. I'm still reworking the commit.
I apologize for this spam

This reverts commit 14536bf311.
2023-03-06 20:05:18 -05:00
Clebert Suconic 6f974a359b ARTEMIS-4171 Test showing a Leak in Proton after deliveries sent to a consumer wihtout credits and would be closed 2023-03-06 17:04:18 -08:00
Clebert Suconic 216f5a3821 ARTEMIS-4171 Test showing a memory leak in the client with Proton-J and qpid-jms 2023-03-06 17:04:18 -08:00
Clebert Suconic 14536bf311 Revert "I'm temporarily reverting "ARTEMIS-4193 Large Message Files orphaned after server killed""
This reverts commit 7e6ce5a259.
2023-03-06 17:04:18 -08:00
Clebert Suconic 7e6ce5a259 I'm temporarily reverting "ARTEMIS-4193 Large Message Files orphaned after server killed"
while I figure out a better fix

This reverts commit 9f1927d3fa.
2023-03-06 12:31:54 -05:00
Robbie Gemmell 1f3745c87d ARTEMIS-4160: update the files used for the config upgrade testing to use the new comment.
Fixes the CompareUpgradeTest by removing this unimportant difference from a fresh broker instances jolokia-access.xml file, given that we dont actually update jolokia-access.xml currently during upgrade.

Tweaks or unwinds earlier changes in aae65fd527 and 3e7cb24381
2023-03-03 14:58:22 +00:00
Justin Bertram 97c78525da ARTEMIS-4181 make try-with-resources style consistent 2023-03-03 08:40:51 -06:00
Clebert Suconic 812cdf3589 ARTEMIS-4194 Upgrade CheckLeak to 0.8 2023-03-02 21:15:17 -08:00
Clebert Suconic 9f1927d3fa ARTEMIS-4193 Large Message Files orphaned after server killed 2023-03-02 19:03:37 -08:00
Clebert Suconic aae65fd527 NO-JIRA Fixing CompareUpgradeTest 2023-03-02 18:12:51 -08:00
Clebert Suconic 3e7cb24381 NO-JIRA Adding CompareUpgradeTest to fast-tests 2023-03-02 18:12:51 -08:00
Justin Bertram 50e90cad5d ARTEMIS-4151 tighten default MBean access
This is a preventative measure to limit what users can do with any MBean
other than those in the hawtio or org.apache.activemq.artemis domains.
2023-03-02 19:17:14 -06:00
Justin Bertram b76c672305 ARTEMIS-4162 support deleting addresses & queues w/o usage check
There are certain use-cases where addresses will be auto-created and
never have a direct binding created on them. Because of this they will
never be auto-deleted. If a large number of these addresses build up
they will consume a problematic amount of heap space.

One specific example of this use-case is an MQTT subscriber with a
wild-card subscription and a large number of MQTT producers sending one
or two messages a large number of different MQTT topics covered by the
wild-card. Since no bindings are ever created on any of these individual
addresses (e.g. from a subscription queue) they will never be
auto-deleted, but they will eventually consume a large amount of heap.
The only way to deal with these addresses is to manually delete them.

There are also situations  where queues may be created and never have
any messages sent to them or never have a consumer connect. These
queues will never be auto-deleted so they must be deleted manually.

This commit adds the ability to configure the broker to skip the usage
check so that these kinds of addresses and queues can be deleted
automatically.
2023-03-02 19:17:03 -06:00
Justin Bertram 6874556f7c ARTEMIS-4188 auto-create + MDB using selector on queue 2023-03-02 16:26:12 -08:00
Clebert Suconic 8078dd098c ARTEMIS-4171 Messages leaking thorugh AMQP Delivery
there are two leaks here:

* QueueImpl::delivery might create a new iterator if a delivery happens right after a consumer was removed, and that iterator might belog to a consumer that was already closed
             as a result of that, the iterator may leak messages and hold references until a reboot is done. I have seen scenarios where messages would not be dleivered because of this.

* ProtonTransaction holding references: the last transaction might hold messages in the memory longer than expected. In tests I have performed the messages were accumulating in memory. and I cleared it here.
2023-02-28 14:36:32 -05:00
Clebert Suconic 9e524d978d ARTEMIS-4175 JournalFileImpl Leaking
I am now removing the negatives once the file is removed or reused
2023-02-28 13:54:03 -05:00
Justin Bertram fb169bc4af ARTEMIS-4172 sending large msg via core skips plugins & audit log 2023-02-16 13:34:29 -08:00
Justin Bertram 82fc42987a ARTEMIS-4171 potential large message file leak 2023-02-16 13:34:29 -08:00
Clebert Suconic c123a29f8e ARTEMIS-4161 Removing test.log left by accident 2023-02-16 16:10:28 -05:00
Clebert Suconic a2ba6ed298 ARTEMIS-4161 AMQP and OpenWire leaking leaking objects in certain conditions
The issue identified with AMQP was under Transaction usage, and while opening and closing sessions.
It seems the leak would be released once the connection is closed.

We added a new testsuite under ./tests/leak-tests To fix and validate these issues
2023-02-16 12:10:54 -08:00
Clebert Suconic 69e21a0eb7 ARTEMIS-4163 Fixing openwire race while chunkSend is happening 2023-02-09 19:58:40 -05:00
Clebert Suconic 1caa406bbf NO-JIRA Adding a test to verify TX in OpenWire Large Message Handling 2023-02-08 09:29:11 -05:00
Clebert Suconic ed5f63538e ARTEMIS-4155 Fixing deadlock on LargeMessage conversion and retention 2023-02-06 09:27:18 -05:00
Justin Bertram 8f30347b18 ARTEMIS-4143 improve mitigation against split-brain with shared-storage
Configurations employing shared-storage with NFS are susceptible to
split-brain in certain scenarios. For example:

  1) Primary loses network connection to NFS.
  2) Backup activates.
  3) Primary reconnects to NFS.
  4) Split-brain.

In reality this situation is pretty unlikely due to the timing involved,
but the possibility still exists. Currently the file lock held by the
primary broker on the NFS share is essentially worthless in this
situation. This commit adds logic by which the timestamp of the lock
file is updated during activation and then routinely checked during
runtime to ensure consistency. This effectively mitigates split-brain in
this situation (and likely others). Here's how it works now.

  1) Primary loses network connection to NFS.
  2) Backup activates.
  3) Primary reconnects to NFS.
  4) Primary detects that the lock file's timestamp has been updated and
     shuts itself down.

When the primary shuts down in step #4 the Topology on the backup can be
damaged. Protections were added for this via ARTEMIS-2868 but only for
the replicated use-case. This commit applies the protection for
removeMember() so that the Topology remains intact.

There are no tests for these changes as I cannot determine how to
properly simulate this use-case. However, there have never been robust,
automated tests for these kinds of NFS use-cases so this is not a
departure from the norm.
2023-02-03 10:40:08 -05:00
Timothy Bish d1b3610f68 ARTEMIS-2431 Stop processing Begin and Attach frames if open fails
For pipelined open cases the events processing should ignore additional begin
and attach events if the open event handler closes the connection to avoid the
processing throwing additional exceptions and replacing the error condition in
the connection with an unrelated error about NPE from the additional events.
2023-02-01 17:53:32 -05:00
Clebert Suconic 2378d187af [maven-release-plugin] prepare for next development iteration 2023-01-31 07:22:48 -05:00
Clebert Suconic 893e1e7916 [maven-release-plugin] prepare release 2.28.0 2023-01-31 07:22:47 -05:00
Clebert Suconic 764db34e9b ARTEMIS-3178 Page Limitting (max messages and max bytes)
I am adding three attributes to Address-settings:

* page-limit-bytes: Number of bytes. We will convert this metric into max number of pages internally by dividing max-bytes / page-size. It will allow a max based on an estimate.
* page-limit-messages: Number of messages
* page-full-message-policy: fail or drop

We will now allow paging, until these max values and then fail or drop messages.

Once these values are retracted, the address will remain full until a period where cleanup is kicked in by paging. So these values may have a certain delay on being applied, but they should always be cleared once cleanup happened.
2023-01-30 18:19:45 -05:00
Justin Bertram bea8d21ecd ARTEMIS-4145 MQTT shared sub queue may be inadvertently removed
o.a.a.a.c.p.m.MQTTSubscriptionManager#removeSubscription() had a chunk
of code from 971f673c60 removed. That code
was added under the assumption that there should only ever be one
consumer per queue. That was true for MQTT 3.x, but it's not always true
for MQTT 5 due to shared subscriptions. However, the tests from that
commit all still pass even with it removed now (as well as all the other
MQTT tests) so I think it's safe.
2023-01-30 12:09:40 -05:00
Justin Bertram 49f8846861 ARTEMIS-4146 reauthenticated subjects are not cached 2023-01-30 12:02:08 -05:00
Timothy Bish 4785995f58 ARTEMIS-3357 Properly compare the subscription address on client re-attach
If the client is using address prefixes to define the routing type along with
durable subscriptions then on re-attach the compairon to check if the subscription
address has changed needs to remove the prefix when comparing against the address
since the prefix isn't propagated when creating the address and will always fail
resulting in the subscription queue being deleted in error.
2023-01-27 16:28:02 -05:00
Timothy Bish 6e10908c50 ARTEMIS-3153 Add tests for address prefixes for AMQP links
Adds some tests to validate that the destination prefixes if set and
are used properly by the client are honored over the default address
auto create routing type condiguration.
2023-01-26 12:56:39 -05:00
Domenico Francesco Bruscino ac7b0e85fb ARTEMIS-4113 Fix NPE for backup brokers with connection routers
The nodeID on backup brokers is available only after they become live.
2023-01-26 09:55:31 -05:00
Timothy Bish ca66028b2a ARTEMIS-4132 AMQP Receiver default to ANYCAST when creating an address
When an AMQP client subscribes to a new address (non-existing) with a receiver link, the
address is created with routing type ANYCAST regardles of the default address creation
configuration of the broker, and ignores even the broker wide default of MULTICAST.
2023-01-23 13:09:36 -05:00
Clebert Suconic 0d3cd8d880 ARTEMIS-4136 Mirrored sync replica
I am adding an option sync=true or false on mirror. if sync, any client blocking operation will wait a roundtrip to the mirror
acting like a sync replica.
2023-01-23 12:38:11 -05:00
Justin Bertram b0ba8cae24 ARTEMIS-4137 MQTT sub-queue clean-up can fail due to auth 2023-01-23 16:18:03 +01:00
Domenico Francesco Bruscino b1207b9a56 ARTEMIS-4131 Support custom maven local repo for karaf tests 2023-01-19 10:06:36 +01:00
Justin Bertram 8a974fe89c ARTEMIS-4133 msg w/null prop value can't be consumed via STOMP 2023-01-17 12:18:49 -06:00
Ryan Highley bb8761fcd2 ARTEMIS-3790 Support masked JMS credentials
Adds standard username and password value unmasking for JMS
ActiveMQConnectionFactory instances
2023-01-17 10:25:46 -06:00
Andy Taylor b02002fc66 ARTEMIS-3875 - adding consumer and producer metrics
https://issues.apache.org/jira/browse/ARTEMIS-3875
2023-01-13 15:49:44 -05:00
Justin Bertram c190d1c72f ARTEMIS-4127 refactor multiprotocol JMS tests in AMQP package
Over time org.apache.activemq.artemis.tests.integration.amqp has become
home to many multi-protocol JMS tests even though the package is really
for AMQP-specific tests. This commit splits those tests out into their
own package.

This is a preliminary step to clarify these tests before I add another
one for a different issue.
2023-01-12 16:19:48 -05:00
Clebert Suconic abd62665ce ARTEMIS-4125 Fixing AutoCreateJmsDestinationTest::testAutoCreateOnSubscribeToTopic 2023-01-12 16:17:28 -05:00
Justin Bertram e531c61c95 ARTEMIS-4126 address not auto-created when sending MQTT msg 2023-01-09 10:46:06 -06:00
Justin Bertram 114302a093 ARTEMIS-4125 address can be removed inadvertently
When the last non-durable subscriber on a JMS topic disconnects the
corresponding queue representing the subscription is deleted as
expected. However, the queue's address will also be deleted no matter
what, which is *not* expected.
2023-01-09 10:45:56 -06:00
Justin Bertram 56167b5e13 ARTEMIS-4122 support timed refresh for LegacyLDAPSecuritySettingPlugin
Some LDAP servers (e.g. OpenLDAP) do not support the "persistent search"
feature and therefore the existing "listener" feature does not actually
fetch updates. This commit implements a "pull" feature controlled by a
configurable interval equivalent to what is implemented in the cached
LDAP authorization module from ActiveMQ "Classic."
2023-01-07 22:54:35 -06:00
Justin Bertram c354c8e642 ARTEMIS-4016 fixing tests 2023-01-07 22:54:26 -06:00
Justin Bertram bf1d81e09e ARTEMIS-3707 fixing tests
A handful of tests started to fail after the original fix was committed.
This commit fixes those failures mainly by using a mock
`TransactionSynchronizationRegistry`.

I changed `o.a.a.a.r.ActiveMQRAManagedConnection#checkTransactionActive`
slightly because `getTransactionStatus` will never return `null` unlike
`getTransaction` would. The semantics should still be the same, though.
2023-01-07 22:54:17 -06:00
Robbie Gemmell 0dcb3aba2e ARTEMIS-4110: update a few more files introduced recently from older PRs being merged 2022-12-20 09:45:52 +00:00
AntonRoskvist 04ddeb647c ARTEMIS-4016 Bridges created by management operations are removed on restart and config reload 2022-12-17 10:10:10 -06:00
AntonRoskvist 6dd7965906
ARTEMIS-3834 include paged messages sending to DLA 2022-12-17 00:03:23 -06:00
Ryan Highley 51c1504b05 ARTEMIS-3794 System Property Encryption Support
Adds support for standard Java TLS and ActiveMQ Artemis-specific override
encrypted system property values for the key store and trust store
passwords, including a separate codec property
2022-12-16 19:15:56 -06:00
Clebert Suconic 9816e1b999 ARTEMIS-3085 Fixing IOCriticalErrorListenerTest 2022-12-16 05:32:59 -05:00
Clebert Suconic f5d9eed9ce ARTEMIS-3085 Fixing test and proper wiring listener 2022-12-16 05:27:18 -05:00
Somdatta 00592d6dd8
ARTEMIS-3085 support custom IOCriticalErrorListener 2022-12-15 16:35:20 -06:00
AntonRoskvist 5c2a0d744c
ARTEMIS-4091 - Make scaleDown target more deterministic 2022-12-15 16:05:26 -06:00
Justin Bertram 038e95adb9 ARTEMIS-4109 unable to auto-delete q for MQTT retained msg 2022-12-15 13:44:55 -06:00
Justin Bertram cbd9f63a9d ARTEMIS-4115 ArrayIndexOutOfBoundsException when dup cache size is 0
Allow setting id-cache-size to 0 from broker.xml and ensure the broker
handles this gracefully. Previously you could only set the cache size to
0 via broker properties or programmatically and it would throw an
ArrayIndexOutOfBoundsException when adding an item to the cache.
2022-12-15 13:01:31 -06:00
Domenico Francesco Bruscino 635ca1fbd6 ARTEMIS-3866 Move user preferences to the send message view 2022-12-15 11:51:39 -05:00
Domenico Francesco Bruscino fa8d487ff2 ARTEMIS-3866 Authorize management message sending using context subject 2022-12-15 11:51:39 -05:00
Clebert Suconic 1de10671f8 ARTEMIS-3609 Do not use netty thread for thread completion listener 2022-12-15 10:35:43 -05:00
Clebert Suconic af9bd7b84a ARTEMIS-4065 Optimize page counters to not use the journal as often
- From now on we will save snapshots of page-counters on the journal (basically for compatibility with previous verions).
  And we will recount the records on startup.

- While the rebuild is being done the value from the previous snapshot is still available with current updates.
2022-12-15 10:30:18 -05:00
Justin Bertram ba2cbddd6b
ARTEMIS-3871 fix MQTT shared sub q naming semantics 2022-12-13 14:45:13 -06:00
Clebert Suconic ef67ea0e26 NO-JIRA Fixing intermittent failure on JMSTransactionTest
We can't block the netty thread (which is used by the Listener) otherwise everything just blocks and nothing works on the client
2022-12-13 13:35:59 -05:00
Clebert Suconic f6050b842e NO-JIRA fixing intermittent failure on ActiveMQServerControlTest 2022-12-13 12:17:26 -05:00
Justin Bertram b5e25eb4fe ARTEMIS-3871 uniquely name MQTT share sub queues 2022-12-13 11:59:08 -05:00
Clebert Suconic 4af11a04d3 NO-JIRA fixing intermittent failure on ActiveMQServerControlTest 2022-12-13 11:35:19 -05:00
Justin Bertram 499e3c119f ARTEMIS-4101 caching failed authn result on LDAP cxn failures 2022-12-13 09:07:28 -05:00
Gary Tully bfb33c7a26 ARTEMIS-4042 - remove use of codec system property from scripts as env var can now be read directly 2022-12-08 15:04:26 +00:00
Robbie Gemmell f790911c44 ARTEMIS-4110: insert standard ASF licence header comment in various cases, such as to replace a javadoc header 2022-12-07 10:21:25 +00:00
Clebert Suconic eb11b044af ARTEMIS-4108 AMQP Drain fails under load with Large Messages 2022-12-05 16:47:08 -05:00
Clebert Suconic af2b8e4b07 ARTEMIS-4084 Dealing with multi consumers crashes, Improving cached addSorted 2022-11-28 09:54:45 -05:00
Robbie Gemmell 481d07f27e ARTEMIS-4092: resolve issues with upgrade backups, tweaks for clarity and consistency, additional output detail
Adds test verifications that expected files are backed up and match pre-upgrade reference files.

This closes #4291
2022-11-23 16:05:37 +00:00
Clebert Suconic 0866a2eb88 ARTEMIS-4096 Bridge transfer is broken with AMQP Large messages 2022-11-19 11:57:28 -05:00
Domenico Francesco Bruscino 3a13a7850c ARTEMIS-4077 Add an option to disable XML external entity processing 2022-11-15 10:06:03 -06:00
Clebert Suconic 4f79eb42f5 ARTEMIS-4089 Check on AutoCreation during routing 2022-11-14 15:25:42 -05:00
Šmucr Jan 43824fc494 ARTEMIS-4078 Fix divert reloading
Reloading has been fixed for divert:
* filter
* address
* exclusive

Source address and exclusivity changes require divert redeployment.
2022-11-11 12:00:00 -06:00
Justin Bertram ca580814de ARTEMIS-4085 exclusive LVQ sending all messages to consumer 2022-11-10 13:58:53 -05:00
Clebert Suconic 42529899d0 NO-JIRA small tweak on test 2022-11-10 07:52:44 -05:00
Clebert Suconic f2e0f8713f ARTEMIS-4083 ClientLargeMessage Streaming not closing inputStream if compressed 2022-11-10 07:52:44 -05:00
Clebert Suconic 9528e45869 ARTEMIS-4083 ClientLargeMessage Streaming not closing inputStream if compressed 2022-11-10 06:27:10 -05:00
Clebert Suconic ae4475201e ARTEMIS-4084 Fixing CriticalAnalyzer policy on Test 2022-11-09 16:49:50 -05:00
Clebert Suconic 03b82142eb ARTEMIS-4084 Fixing addSorted with large transactions
when cancelling a large number of messages, the addSorted could be holding a lock for too long causing the server to crash under CriticalAnalyzer

co-authored: AntonRoskvist <anton.roskvist@volvo.com> (discovering the issue and providing the test ClientCrashMassiveRollbackTest.java)
2022-11-09 15:43:02 -05:00
Justin Bertram dce4ba3c1a [maven-release-plugin] prepare for next development iteration 2022-11-08 13:17:38 -06:00
Justin Bertram 1fd6cb6239 [maven-release-plugin] prepare release 2.27.0 2022-11-08 12:46:20 -06:00
Clebert Suconic 03dec4e2d0 ARTEMIS-4081 Comparing upgrades against fresh instances and some adjustments 2022-11-08 11:29:53 -05:00
Robbie Gemmell 304033673c ARTEMIS-4081: some small cleanups and fixups 2022-11-07 15:41:44 +00:00
Clebert Suconic 9c88fb4f88 ARTEMIS-4081 Upgrade command
This command will help updating the instance from a previous home
2022-11-04 00:13:39 -04:00
Clebert Suconic db1338af52 ARTEMIS-4020 Fixing Management DTO Parsing with custom ETC
This is fixing an issue introduced by the logging changes where a custome ETC would not work correctly.
2022-11-02 15:05:58 -04:00
Gary Tully 45ffea9ef8 ARTEMIS-4002 - support JAVA_ARGS_APPEND env var to easily modify the jdk comand line, JDK_JAVA_OPTIONS is prepend only 2022-10-28 13:59:42 +01:00
Robbie Gemmell 3a55ac72e5 ARTEMIS-4076: handle EventLoop becoming AutoClosable via ExecutorService parent on Java 19, and default method impl causing AllClassesTest to infinite loop
Adds a timeout to the test to prevent similar future issues.
2022-10-27 16:16:42 +01:00
Clebert Suconic 87ec9b5465 ARTEMIS-4045 Fixing in Handler ACKRunner on Mirror 2022-10-26 13:10:07 -04:00
Clebert Suconic d185735e55 ARTEMIS-4073 Page Counters can go off sync when multiple producers are used in the same address 2022-10-25 21:26:14 -04:00
Clebert Suconic cffc06aec8 NO-JIRA Fixing intermittent failure in PagingTest 2022-10-23 12:16:23 -04:00
Clebert Suconic c199902cde NO-JIRA Fixing intermittent failure in PagingTest
receiveImmediate will issue a depage but it might not be available right away.
A retry needs to be done.
2022-10-23 12:11:53 -04:00
Clebert Suconic b388a24b26 ARTEMIS-4056 Paging Management optimizations
- optimize startup time on paging (check-depage on startup)
- otpimize getNextPage() on complete pages
- optimize getFirstMessage() and paging. (avoid iterator usage)
2022-10-18 10:45:55 -04:00
Clebert Suconic 10a93f9203 NO-JIRA log.debug on a test 2022-10-15 00:24:19 -04:00
Clebert Suconic 0275efff29 NO-JIRA Fixing Junit Helpr methods errorprone issue in MegaCleanerPagingTest 2022-10-15 00:15:09 -04:00
Clebert Suconic 3f63e6be82 NO-JIRA Adding a test to validating paging reload
no issues found as part of this test. Just adding a new test.
2022-10-14 16:31:37 -04:00
Clebert Suconic ec00def02b ARTEMIS-4025 Fixing testsuite by adding json missing dependencies 2022-10-14 15:42:42 -04:00
Gary Tully 03ef286cc8 ARTEMIS-4025 - trap failure to apply properties as errors and report via the broker status in a configuration/properties/errors status field 2022-10-13 18:23:09 +01:00
Timothy Bish b900a1e4bd ARTEMIS-4020 Standardize the naming of Logger types for consistency
Attempt to standardize all Logger declaration to a singular variable name
which makes the code more consistent and make finding usages of loggers in
the code a bit easier.
2022-10-13 12:40:45 -04:00
Justin Bertram ea04426bcd ARTEMIS-4037 refactor MQTTRetainMessageManagerTest
Commit 5a42de5fa6 called my attention to
this test. It really needs to be refactored because:

 - It belongs in the integration-tests module rather than the MQTT
   protocol module.
 - It is using a lot of non-standard components (e.g.
   EmbeddedJMSResource, Awaitility, etc.).
 - It is overly complicated (e.g. using its own MqttClientService).

This commit resolves all those problems. The new implementation is quite
a bit different but still equivalent. I reverted the original fix from
ARTEMIS-2476 and the test still fails.
2022-10-13 17:33:43 +01:00
Justin Bertram f0ecf6bc89
NO-JIRA fix AMQP acceptor property typo 2022-10-13 11:23:51 -05:00
Justin Bertram 0ab098e456
ARTEMIS-4035 all consumers of federated queue drop if only one consumer drops 2022-10-13 10:36:38 -05:00
Clebert Suconic 49d33470f9 ARTEMIS-4041 Improve critical IO reporting 2022-10-12 10:50:33 -04:00
Justin Bertram 5343c97c7d ARTEMIS-4022 add auto-delete queue attribute to management 2022-10-11 13:16:46 -04:00
Domenico Francesco Bruscino 47e82c4ad0 NO-JIRA Add direct jakarta.annotation-api dependency to integration-tests
ResourceLoadingSslContext depends on jakarta.annotation-api
2022-10-11 09:09:08 +02:00
Clebert Suconic 33438c2e44 ARTEMIS-4029 Avoid OME When too many pages are cleared all at once
this is the second part of the fix (I missed the first part) where I am clearig midstream records as well.
2022-10-11 00:26:41 -04:00
Timothy Bish 617269319a ARTEMIS-4020: Remove string appends and various isXEnabled logger checks (add some where useful)
Logger statements should use formatting syntax and let the normal framework checks take care of
checking if a logger is enabled instead of string concats and isXEnabled logger checks except
in cases there is known expense to the specifc logging message/arg preparation or passing.

Changes from myself and Robbie Gemmell.

Co-authored-by: Robbie Gemmell <robbie@apache.org>
2022-10-07 15:40:53 -04:00
Clebert Suconic 42d07458e9 ARTEMIS-4029 Avoid OME When too many pages are cleared all at once
The issue is that depage should not put pages on the used pages as they were not actually intended to read.
instead I should create a newPageObject and not use the RefCounts caching.
2022-10-06 07:53:38 -04:00
Clebert Suconic 20fde76e99 ARTEMIS-4020 Fixing Semaphore on soak-tests/OWLeakTest
I did not intend to have this difference in the semaphore.

The idea is that we never keep messages pending on this case, otherwise such a huge message would use too much memory.
2022-10-04 15:02:10 -04:00
Clebert Suconic 18cfdb7049 ARTEMIS-4024 Avoid excessive NativeMemory allocation when sending OpenWire Multi mega sized messages in openwire 2022-10-04 13:35:50 -04:00
Clebert Suconic d2354ae470 ARTEMIS-4020 Fixing logging on soak-tests 2022-09-29 17:48:46 -04:00
Clebert Suconic 2ba6452b83 ARTEMIS-4020 removing ActiveMQTestBase::instanceLog 2022-09-29 17:46:51 -04:00
Clebert Suconic 12cc70c5bf ARTEMIS-4020 Using a little trick to create the Loggers
Trick provided by Tim Bish
2022-09-29 17:46:51 -04:00
Robbie Gemmell 9873fccf74 ARTEMIS-4020: switch to using SLF4J API for logging, use Log4J 2 as impl for broker distribution and tests
PR includes work from myself and Clebert Suconic, squashed from the new-logging branch.
2022-09-28 14:01:54 -04:00
Clebert Suconic 1a8c458906 NO-JIRA Adding a Compacting Test
I was debugging Compacting, looking for a possible issue here in these conditions.
even though I found nothing wrong with the code, I still want to keep the test as there's no such thing as enough testing.
2022-09-26 11:23:50 -04:00
Justin Bertram e47b7992ca
ARTEMIS-4010 LegacyLDAPSecuritySettingPlugin missing data
In commit a9a85f98db I removed the code
which modified existing matches. However, I forgot that the matches read
from LDAP are often duplicated so instead of always adding a new match
this commit ensures that the *right* match is modified rather than a
potentially more generic wildcard match (which was the original
problem).
2022-09-23 21:29:35 -05:00
Justin Bertram cd7555c523 ARTEMIS-3264 handle core-to-AMQP conversion failures more gracefully
If an AMQP consumer tries to receive a message and the broker is unable
to convert the message from core to AMQP then the consumer is
disconnected and the offending message stays in the queue. When the
consumer reconnects the conversion error will happen again resulting in
a loop that can only be resolved through administrative action (e.g.
deleting the message manually or sending it to a dead letter address).

This commit fixes that problem by detecting the conversion problem and
sending the message to the queue's dead letter address. It also doesn't
disconnect the consumer.

This commit also changes the log messages associated with sending a
message to the dead letter address since this event can now occur
regardless of the delivery attempts.
2022-09-22 09:55:36 -04:00
Clebert Suconic 5d8e7fe829 [maven-release-plugin] prepare for next development iteration 2022-09-21 13:00:47 -04:00
Clebert Suconic 2d7b1a3ef7 [maven-release-plugin] prepare release 2.26.0 2022-09-21 13:00:46 -04:00
Gary Tully 2d662a07f3 ARTEMIS-4007 - expose status attribute on configuration that can hold version or error state and reflect modifications via refresh 2022-09-21 11:49:26 -04:00
Tiago Bueno d8cdc24112 ARTEMIS-4005 - Fix e2e-test execution
Fix the Dockerfile name reference
Add artemis-unit-test-support module as test dependency
2022-09-20 16:38:37 +01:00
Gary Tully d7d1c2ee42 ARTEMIS-4001 - add properties url to the reload manager watch list, validate queue creation on reload with new test 2022-09-20 15:39:32 +01:00
Clebert Suconic 7bf1193380 ARTEMIS-4003 Fixing credit starve on Large Message over the bridge or clustering 2022-09-19 12:10:28 -04:00
Domenico Francesco Bruscino e7ff8fd427 ARTEMIS-3980 Remove web content from distribution 2022-09-16 11:02:25 -04:00
Justin Bertram 27008758fe
ARTEMIS-3986 CME when using LVQ
The map used by LastValueQueue was inadvertently changed to a
non-thread-safe implementation in
4a4765c39c. This resulted in an occasional
ConcurrentModificationException from the hashCode implementation.

This commit restores the thread-safe map implementation and adds a test
which brute-forces a CME when using the non-thread-safe implementation.
2022-09-15 11:11:19 -05:00
Justin Bertram 6b5a73db8a
ARTEMIS-3913 custom MQTT client ID rejection
Sometimes users want to perform custom client ID validation, and in the
case of an invalid client ID the proper reason code should be returned
in the CONNACK packet.
2022-09-14 11:50:36 -05:00
Clebert Suconic f47d592079 ARTEMIS-3988 Moving MMSFactoryTest under soak-tests 2022-09-13 23:29:20 -04:00
Clebert Suconic 59585ffc94 NO-JIRA Trying to fix StompV11Test intermittent failure 2022-09-13 23:05:22 -04:00
Justin Bertram a9a85f98db ARTEMIS-3984 LegacyLDAPSecuritySettingPlugin shouldn't modify existing matches
When the LegacyLDAPSecuritySettingPlugin has enableListener set to true
and a new permission is added it will try to modify the existing match
if one exists. This is problematic if there's a more generic wildcard
match than the specific one that's modified.

This commit fixes that problem so that instead of modifying the existing
match(es) it simply adds a new one. The plugin never should have tried
modifying the existing match in the first place as two identical matches
would be a configuration error.
2022-09-13 19:11:28 -04:00
Emmanuel Hugonnet 51ccc7d6c2
ARTEMIS-3989 ActiveMQServerControl.getRoles doesn't return all roles
- Fixing RoleInfo to provide informations on deleteAddress.
 - Adding more coverage on test to check the number of permissions
   returned.

Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
2022-09-13 14:43:58 -05:00
Clebert Suconic 9fc5886391 NO-JIRA Making some Test Parameters mandatory
if you miss them, the test would rather fail then silently using less than ideal values
2022-09-13 08:38:23 -04:00
Clebert Suconic e654eba0de ARTEMIS-3987 Removing ActiveMQ Artemis Rest from the codebase.
As we discussed on the dev list, this module hasn't been used for a while, and we have been asking users to use stomp and stomp-WS instead.
2022-09-12 15:09:31 -04:00
Clebert Suconic 4ad830fb95 Bumping artemis as 3.0
After removing ActiveMQ Artemis rest (per ARTEMIS-3987), we should start promoting Artemis as 3.0
2022-09-12 15:09:31 -04:00
Robbie Gemmell e5086f447e ARTEMIS-3985: update to activemq 5.17.2 2022-09-12 12:20:14 +01:00
Clebert Suconic f953408185 ARTEMIS-3969 Removing Extra tests from the codebase 2022-09-02 13:04:53 -04:00
Clebert Suconic 11eab60584 [maven-release-plugin] prepare for next development iteration 2022-08-30 18:04:06 -04:00
Clebert Suconic fb1b362b47 [maven-release-plugin] prepare release 2.25.0 2022-08-30 18:04:05 -04:00
Rico Neubauer 6482805f7d
ARTEMIS-3922 Reducing contention on Throwable#getOurStackTrace
By allowing to pass caller's classname directly to org.apache.activemq.artemis.utils.ActiveMQThreadFactory#defaultThreadFactory instead of calculating it from stack.
2022-08-30 11:08:31 -05:00
Clebert Suconic d06459df57 ARTEMIS-3943 Adjusting defalut address settings to avoid OME from paging and flow control 2022-08-30 09:26:35 -04:00
Clebert Suconic aa4c642796 NO-JIRA Fixing intermittent failure in StompV11Test 2022-08-29 18:56:14 -04:00
Justin Bertram 755b987ab1
ARTEMIS-3958 sending LWT may recurse infinitely if disk full
Due to the changes in 682f505e32 we now
send "Last Will & Testament" MQTT messages via ServerSession. This means
sending will fail if the disk is full. For MQTT this triggers a
connection failure which in turns triggers sending an LWT message. This
process will recurse infinitely until it results in a
java.lang.StackOverflowError.

This commit fixes that by tracking whether or not sending a LWT message
is already in progress.
2022-08-26 11:13:01 -05:00
Justin Bertram 729fdc4aab ARTEMIS-3955 consolidate Subject on RemotingConnection 2022-08-25 18:12:11 -04:00
Justin Bertram 63966dcc56
ARTEMIS-3872 send scheduled msg immediately via mgmnt 2022-08-25 08:44:43 -05:00
Justin Bertram 8511cf3617
ARTEMIS-3843 add/remove connector via management 2022-08-24 17:24:29 -05:00
Justin Bertram 87e9b361bb
ARTEMIS-3785 support specifying alias for SSL keystore 2022-08-24 17:22:01 -05:00
AntonRoskvist e8337b9c2e
ARTEMIS-3933 - ScaleDown NPE on DLA resources with multiple destinations 2022-08-24 17:17:09 -05:00
Justin Bertram 86db53da9a ARTEMIS-3918 support FQQN + anycast + redistribution
When a message is sent to an anycast queue via FQQN on one node of a
cluster and then a consumer is created on that same anycast queue via
FQQN on another node in the cluster the message is not redistributed to
the node with the consumer.

This commit fixes this use-case primarily by including the FQQN info in
the notification messages sent to other nodes in the cluster.
2022-08-19 16:42:03 -04:00
Clebert Suconic c96243698d NO-JIRA Fixing suggested script for test variables
These scripts are supposed to be execute with ". ./parameters-paging.sh"
which would incur in -e, and any mistake on the shell will kill your shell and you would be wondering what happened.
2022-08-18 16:24:45 -04:00
Clebert Suconic 51825b18ba NO-JIRA: remove now-stale comments on tests that I missed when switching to cp files in 71b781d919 2022-08-18 16:07:25 -04:00
Robbie Gemmell 0ca44c0e69 NO-JIRA: remove now-stale comments missed when switching to cp files in 71b781d919 2022-08-18 11:56:35 +01:00
Robbie Gemmell 085bf79bf6 NO-JIRA: remove a couple of properties that override parent definitions and break use of the e2e-tests profile 2022-08-18 11:54:54 +01:00
Justin Bertram 682f505e32
ARTEMIS-3942 use session instead of direct routing for MQTT LWT messages
Using direct routing skips authorization for "Last Will and Testament"
messages (a.k.a. "will" messages). This commit fixes that problem by
using the internal session that is established for normal message
production and consumption.
2022-08-17 12:29:01 -05:00
Justin Bertram d158e7eff0
ARTEMIS-3925 LVQ pruning nulls
Messages without a last-value property sent to an LVQ are being pruned
rather than just passing through. Only messages with a non-null
last-value property should be subject to pruning.
2022-08-17 12:28:36 -05:00
Clebert Suconic 520088b8c6 ARTEMIS-3940 Address.maxSizeMessage is ignored on FAIL and Blocking Paging Policy 2022-08-16 16:50:51 -04:00
Clebert Suconic 2fbf2fcef0 ARTEMIS-3928 Fixing intermittent failure after executor's change 2022-08-13 22:21:56 -04:00
Clebert Suconic 252e5b0b14 ARTEMIS-3928 Limiting parallel IO in paging which would allow multiple destinations running all at once
Running HorizontalPagingTest with these variables would make the test to fail unless these changes are applied.

export TEST_HORIZONTAL_SERVER_START_TIMEOUT=300000
export TEST_HORIZONTAL_TIMEOUT_MINUTES=120
export TEST_HORIZONTAL_PROTOCOL_LIST=OPENWIRE

export TEST_HORIZONTAL_OPENWIRE_DESTINATIONS=200
export TEST_HORIZONTAL_OPENWIRE_MESSAGES=1000
export TEST_HORIZONTAL_OPENWIRE_COMMIT_INTERVAL=100
export TEST_HORIZONTAL_OPENWIRE_RECEIVE_COMMIT_INTERVAL=0
export TEST_HORIZONTAL_OPENWIRE_MESSAGE_SIZE=20000
export TEST_HORIZONTAL_OPENWIRE_PARALLEL_SENDS=10
2022-08-10 19:29:29 -04:00
Clebert Suconic 12b81e7a25 ARTEMIS-3928 Adding SoakTest for Paging with in many destinations
Also some organization on soak test to allow this test
adding CLI operation to configure memory size of the broker
2022-08-10 16:38:58 -04:00
Emmanuel Hugonnet 7fe3e5d198 ARTEMIS-3923 AddressControlImpl.getRoles doesn't return all the security role permissions.
* Adding the missing permissions to the array.

Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
2022-08-08 11:20:04 +02:00
Clebert Suconic 4a7710918d NO-JIRA Moving HQ Converter into HQ client module 2022-08-02 14:32:48 -04:00
Justin Bertram dd61a651b1 ARTEMIS-3916 fix OpenWire selector with JMSMessageID
The OpenWire JMS client shipped with ActiveMQ "Classic" uses the
client's hostname as part of the `JMSMessageID`. Consumers may use this
data to select messages sent from particular hosts. Although this is
brittle and not recommended it is nonetheless possible.

However, when messages arrive to ActiveMQ Artemis they are converted
to core messages, and the broker doesn't properly map the selector from
`JMSMessageID` to the corresponding property on the underlying core
message. This commit fixes that problem. Changes include:

 - Mapping selector from JMSMessageID to the internal __HDR_MESSAGE_ID
 - Relocating some constant values so that both the protocol and commons
   module can use them
 - Adding a test
2022-08-02 09:29:25 -04:00
Clebert Suconic 71b781d919 NO-JIRA Improving dependency-scan for compatibility-tests 2022-07-29 15:12:56 -04:00
Clebert Suconic fa002728f2 [maven-release-plugin] prepare for next development iteration 2022-07-26 11:59:21 -04:00
Clebert Suconic 897d9beaef [maven-release-plugin] prepare release 2.24.0 2022-07-26 11:59:19 -04:00
Clebert Suconic 79daf49105 [maven-release-plugin] prepare for next development iteration 2022-07-21 17:44:35 -04:00
Clebert Suconic cc4867ccba [maven-release-plugin] prepare release 2.24.0 2022-07-21 17:44:33 -04:00
Domenico Francesco Bruscino 4513d2f121 NO-JIRA Fix Console QueuesTest 2022-07-21 21:40:27 +02:00
AntonRoskvist e56b5ff53f ARTEMIS-3840 Core bridges with concurrency > 1 will get removed on config reload 2022-07-21 12:36:08 -04:00
Justin Bertram 4974f2a9f0
ARTEMIS-3896 fix tests 2022-07-21 10:53:15 -05:00
Justin Bertram 14a4446ec1
ARTEMIS-3892 fix test 2022-07-21 10:53:07 -05:00
Justin Bertram a2262612ca
ARTEMIS-3892 fix tests, add docs 2022-07-20 11:36:12 -05:00
Yesenkov ff1fe7f6b5 ARTEMIS-3892 user limits not working with cert auth 2022-07-19 13:20:49 -04:00
Justin Bertram ff770d540d ARTEMIS-1964 fix and deprecate getNumberOfMessages() on AddressControl
AddressControl has 2 methods to get same metric. Both
getNumberOfMessages() and getMessageCount() return the same metric
albeit in different ways.

Also, getNumberOfMessages() inspects both "local" and "remote" queue
bindings which is wrong.

This commit fixes these issues via the following changes:

 - Deprecate getNumberOfMessages().
 - Change getNumberOfMessages() to invoke getMessageCount().
 - Add a test to ensure getNumberOfMessages() does not count remote
queue bindings.
 - Simplify getMessageCount(DurabilityType).
2022-07-19 13:08:23 -04:00
Clebert Suconic 8e54a65227 ARTEMIS-3767 Incompatibility on replication between 2.17 and current version 2022-07-18 16:34:31 -04:00
Clebert Suconic 8a6ee31055 NO-JIRA Adding a non failing test on TX send and mirror 2022-07-13 13:00:00 -04:00
Gary Tully 4a4765c39c ARTEMIS-3890 - rework LVQ implementation to ensure all messages get delivered, replacement of lvq now tied to the deliver loop. Fix issue with duplicates - bug in LinkedListImpl` 2022-07-13 00:01:16 -04:00
Domenico Francesco Bruscino 15d839a6b0
ARTEMIS-3820 Fix browsing original queue of AMQP messages 2022-07-11 13:44:33 -05:00
iliya d90179b99c ARTEMIS-3815 proper retry through IOCompletion when message not found on target queue on Mirror
co-authored Clebert Suconic
2022-06-30 17:37:27 -04:00
Clebert Suconic 68f6d8263d ARTEMIS-3743 / ARTEMIS-3766 Use ACKReason on Mirror to determine target operations and fixing Delivering statistics on Mirror
I merged these two JIRAs into one as I was doing an overal check on Mirroring
2022-06-29 19:20:03 -04:00
Clebert Suconic 3e4013d8ca ARTEMIS-3868 Journal compactor split improvement
The condition fixed on this commit should not really happen in production
as the compacting counts should always be ordered (records that were compacted earelier will always be at the top of the journal).

However it highlights an improvement that could be done on the journal compacting.
2022-06-27 14:36:36 -04:00
Robbie Gemmell 2ab0e85db4 ARTEMIS-3874: move/update various bits to allow removing many test-jar creations and dependencies 2022-06-27 09:52:54 -04:00
Robbie Gemmell d199bf3c8c ARTEMIS-3870: mark -all client deps optional in distribution pom, avoid passing on clashing/duplicate deps 2022-06-23 09:42:15 +01:00
Clebert Suconic 8d29742d40 ARTEMIS-3862 Adding Topic Durable Subscription to RemoveSubscriptionRaceTest
This commit just contains test additions
2022-06-21 13:24:33 -04:00
Robbie Gemmell 78587f0a82 NO-JIRA: remove unused methods and related dependencies left from initial copy plus some other cleanup 2022-06-20 16:37:04 +01:00
Clebert Suconic c1fd16d66a ARTEMIS-3864 StompTransactions leaking on ActiveMQServer.getSessions()
After a TX in stomp is committed, a session will never be cleared from ActiveMQServer
2022-06-17 16:57:35 -04:00
Clebert Suconic 9dd026118e ARTEMIS-3862 Short lived subscriptiong makes address size inconsistent 2022-06-17 16:57:35 -04:00
Robbie Gemmell 196e604778 NO-JIRA: suppress significant teardown stacktraces after compatibility test that is a no-op...make test itself skip 2022-06-17 13:02:37 +01:00
Clebert Suconic 342565d4c1 ARTEMIS-3850 Eliminate Page Soft Cache. Add Option to read messages based on sizing. 2022-06-14 14:53:14 -04:00
Justin Bertram c9208aafda ARTEMIS-3851 MQTT sub q exists after restart despite CleanSession=1
MQTT 3.1 and 3.1.1 clients using a clean session should have a
*non-durable* subscription queue. If the broker restarts the queue
should be removed. This is due to [MQTT-3.1.2-6] which states that the
session (and any state) must last only as long as the network
connection.
2022-06-14 14:48:45 -04:00
Clebert Suconic 3002dcefec NO-JIRA Removing ThreadRuleCheck from CompatibilityTests
This is taking too long to fininsh in certain tests. Since it's not really needed I am removing it.
2022-06-13 14:36:52 -04:00
Clebert Suconic cf2f9b4ffd ARTEMIS-3305 Compatibility tests dont work with Java 16+ 2022-06-10 17:00:27 -04:00
Clebert Suconic a3997380c7 NO-JIRA removing test-ng from groovy 2022-06-09 14:08:12 -04:00
Robbie Gemmell 88bb733232 ARTEMIS-3410: also disable related test in integration-tests module on Java 16+ for now 2022-06-09 17:28:10 +01:00
Robbie Gemmell 8ee5253281 NO-JIRA: remove ancient exclusion that doesnt match anything in the module 2022-06-09 17:11:35 +01:00