Commit Graph

10103 Commits

Author SHA1 Message Date
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 de7920d68a ARTEMIS-4191 Adding logger.debug on JournalImpl::needsCompact 2023-03-02 10:00:41 -05:00
Gary Tully dc7d1e25cc NO-JIRA - add test for ENC of tls params for broker amqp connection via props 2023-03-02 12:53:30 +00: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
Domenico Francesco Bruscino 7810a9d686 ARTEMIS-4179 Fix security-keycloak log errors 2023-02-27 11:46:55 +01:00
Justin Bertram 438dd47a78
ARTEMIS-4177 remove defunct logging doc 2023-02-24 12:15:11 -06:00
Domenico Francesco Bruscino aa8102d50f ARTEMIS-4179 Upgrade keycloak version to 21.0.0 2023-02-23 15:14:43 +00:00
Timothy Bish a7973c1dc3 ARTEMIS-4178 Fix some minor typos in broker connections docs
Fix a few small typos in the broker connections docs
2023-02-23 12:57:46 +00:00
Domenico Francesco Bruscino 8bdffe872c ARTEMIS-4176 Fix console custom root redirect 2023-02-23 12:56:06 +00:00
David Lanouette 7e1f6c1abe ARTEMIS-4160 Handle hostnames with double dashes
Previously, the code added a comment with the host name in it.
Sometimes hostnames don't follow the xml standards for comments.
Specifically, having a double dash ("--") in the host name would cause
an error when jolokia tried to load the config file - because it was
invalid xml.

The simple solution was to not put the host name into the comment.

A unit test has been included to ensure the same thing doesn't happen in the
future.

Signed-off-by: David Lanouette <David.Lanouette@RedHat.com>
2023-02-22 06:01:45 +01:00
Justin Bertram 7fe1a20909 ARTEMIS-4170 remove redundant queue creation for OpenWire
o.a.a.a.c.p.o.a.AMQConsumer#init will *always* try to create a core
queue when creating a consumer for a JMS queue. However, this is
already done in o.a.a.a.c.p.o.a.AMQSession#createConsumer.
2023-02-16 13:40:15 -08:00
Justin Bertram ef28cadfae ARTEMIS-4158 upgrade doc generation utils
Bump versions of NPM, Node, & HonKit. The changes to package-log.json
were automatically generated.
2023-02-16 13:38:44 -08: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
Justin Bertram 49cc8ba1c8 ARTEMIS-4168 fix Keycloak example deps 2023-02-14 09:57:39 +00:00
Paul Wright d06d996950 NO-JIRA Add link to download page 2023-02-14 08:47:12 +01:00
Justin Bertram 9f04fea592
NO-JIRA add performance info to cluster doc 2023-02-13 14:07:51 -06:00
ALX 3db843a760 NO-JIRA Minor corrections to the HA documentation page 2023-02-13 11:53:58 +01:00
Justin Bertram d531a9378d
NO-JIRA update hacking guide 2023-02-10 12:24:20 -06:00
Justin Bertram 733cb4c11f
NO-JIRA clarify unit testing doc 2023-02-10 12:06:06 -06:00
Rakhi Kumari 17c760ab7b ARTEMIS-4157: Fix error setting broker properties for AddressSettings 2023-02-10 09:53:22 +00:00
Clebert Suconic 69e21a0eb7 ARTEMIS-4163 Fixing openwire race while chunkSend is happening 2023-02-09 19:58:40 -05:00
Gary Tully 446df6d825 NO-JIRA - add in default to doc for connectionsAllowed 2023-02-09 10:54:26 +00:00
Gary Tully 94516b8b37 fix mirror test that validates autostart 2023-02-08 16:44:42 +00: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
Justin Bertram cfb585eaf6 ARTEMIS-4150 disable Log4j2 MBean by default 2023-02-06 13:20:49 -06:00
Justin Bertram f154c0b7dd ARTEMIS-4153 Support 'offline' Maven 2023-02-06 13:20:34 -06:00
Clebert Suconic ed5f63538e ARTEMIS-4155 Fixing deadlock on LargeMessage conversion and retention 2023-02-06 09:27:18 -05:00
Ryan Highley 6e4af114f1 NO-JIRA - Hacking Guide Branch Name Updates
Updates the hacking guide docs to correct the branch names as "main"
2023-02-03 10:40:48 -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
Justin Bertram 5acf269109
NO-JIRA improve formatting for remote JMX doc 2023-01-31 12:03:37 -06: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 4b55da3eb0 Updating release docs 2023-01-31 07:10:48 -05:00
Robbie Gemmell 031788dbe8 ARTEMIS-3178: remove erroneous comment 2023-01-31 11:48:43 +00:00
Clebert Suconic bbf1baf3b2 ARTEMIS-3178 Fixing validation on PagingStoreImpl for parameters set 2023-01-31 06:40:57 -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
Gary Tully b5ae95c376 ARTEMIS-4149 - add watch to login.config dir to trigger periodic update to jass reloadable properties status in the absence of login attempts 2023-01-30 15:25:58 -05:00
Ryan Highley 1c987ff129 ARTEMIS-3139 Anonymous types in Artemis config XSD
Moves embedded XSD element definitions and associated complexTypes
from XSD element definitions to top-level types available for XML
schema validation in IDEs.
2023-01-30 14:15:53 -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
Robbie Gemmell 3908dfc055 ARTEMIS-2876: re-fix JUnit 4 license note (it was changed to EPL 1.0 in 2013)
earlier fixup  undone by later commit to junit test modules
2023-01-30 15:01:21 +00: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