2454 Commits

Author SHA1 Message Date
Justin Bertram
ca73dee630 ARTEMIS-4833 remove redundant type arguments 2024-06-24 10:41:39 -07:00
Justin Bertram
d7cf5dfa44 ARTEMIS-4829 use lambdas consistently
This commit uses lambdas or method references wherever possible. There
are still a handful of places that appear like they could be changed but
couldn't mainly because they use "this" and the meaning of "this"
changes when using a lambda.
2024-06-21 12:01:16 -04:00
Clebert Suconic
dba753bffc ARTEMIS-4814 Improve synchronization on SimpleAddressManager::getDirectBindings 2024-06-20 11:38:31 -04:00
Justin Bertram
8d3508eaf2 ARTEMIS-4828 remove unused variables 2024-06-19 20:23:33 -04:00
Justin Bertram
be1459c939 ARTEMIS-4826 avoid implicit int conversion to long 2024-06-19 20:19:58 -04:00
Josh Byster
166adf4bfb ARTEMIS-4814 Make direct binding lookup time constant
Currently, with 500K+ queues, the cleanup step of TempQueueCleanerUpper
requires invoking WildcardAddressManager#getDirectBindings, which is
O(k) in the number of queues.

From method profiling, this can consume up to 95% of our CPU time when
needing to clean up many of these.

Add a new map to keep track of the direct bindings, and add a test
assertion that fails if we don't properly remove it.
2024-06-18 21:32:20 -04:00
Domenico Francesco Bruscino
e5e95f4a18 ARTEMIS-4818 Support classes with .class in the package 2024-06-18 13:05:29 +01:00
Domenico Francesco Bruscino
a10694f202 ARTEMIS-4818 Improve support for multiple broker plugins from broker properties 2024-06-18 11:17:44 +01:00
Clebert Suconic
58e8deac2b ARTEMIS-2892 Interrupted replication could lead to restart problems 2024-06-13 17:48:29 -04:00
Clebert Suconic
7f038de9ad ARTEMIS-4667 Fixing replay manager with replication on the large message case 2024-06-12 18:49:35 -04:00
Clebert Suconic
dd6c74fc1c ARTEMIS-4667 ReplayManager does not work with replication
co-authored: Jean-Pascal Briquet provided the testcase
2024-06-12 17:57:36 -04:00
Clebert Suconic
f4fd259f07 [maven-release-plugin] prepare for next development iteration 2024-06-12 11:58:53 -04:00
Clebert Suconic
b4d3a77649 [maven-release-plugin] prepare release 2.35.0 2024-06-12 11:58:52 -04:00
Justin Bertram
e3805bd05a ARTEMIS-4795 enforce queue filter when sending to FQQN 2024-06-12 08:26:11 -04:00
Clebert Suconic
4eb90765a7 ARTEMIS-4813 Large Message in replication / sync could lose part of the body
This is a regressio after ARTEMIS-4784
2024-06-12 00:31:22 -04:00
Justin Bertram
43e8009fb0
NO-JIRA fix small doc-related issues for id-cache-size 2024-06-11 16:42:47 -05:00
Clebert Suconic
178f2e4b4d ARTEMIS-4812 Avoid IntObject accumulation after Page is set as complete
this could lead to OME if a lazy consumer is there for a long time with all pages being removed.
2024-06-11 12:03:08 -04:00
Justin Bertram
220a5ae2aa ARTEMIS-4796 add tests & remove refs 2024-06-10 14:03:00 -07:00
Justin Bertram
14c564a481 ARTEMIS-4800 simplify QueueConfiguration API
This commit does the following:

 - deprecate all QueueConfiguration ctors
 - add `of` static factory methods for all the deprecated ctors
 - replace any uses of the normal ctors with the `of` counterparts

This makes the code more concise and readable.
2024-06-10 07:58:40 -07:00
Gary Tully
efdcc56519 NO-JIRA add transformer to bridge properties config test 2024-06-10 12:34:39 +01:00
Clebert Suconic
5be983392c ARTEMIS-4798 Use original message to calculate the Mirror SNF size in order to start paging 2024-06-07 11:10:12 -04:00
Justin Bertram
7ca30e9a63 ARTEMIS-4796 simplify SimpleString API
This commit does the following:

 - deprecate the verbosely named `toSimpleString` static factory
   methods
 - add `of` static factory methods for all the ctors
 - replace any uses of the normal ctors with the `of` counterparts

This makes the code more concise and readable.
2024-06-06 11:53:03 -04:00
Robbie Gemmell
4ebb2cd41a ARTEMIS-4790: switch to timeout declarations with default units, tweak a few values 2024-06-05 11:40:33 +01:00
Robbie Gemmell
362dbd11ac ARTEMIS-4790: use JUnit 5 for the tests 2024-06-03 10:06:37 -05:00
Clebert Suconic
fa1c5c7173 ARTEMIS-4789 Page.destroy race with cleanup
this is fixing PagingTest::testPagingStoreDestroyed(db=derby) (or any other DB).

This could eventually also fail on journal.

The cleanup could act on a destroyed folder, and issue an IOException stopping the server with this race.

You would need the server active cleaning messages while the queue is being removed.
2024-05-31 16:04:58 -04:00
Clebert Suconic
b05d45cb73 NO-JIRA Removing TODO block
When we reload the page-stores I need to mark the page counter started.
2024-05-30 21:11:03 -04:00
Clebert Suconic
6b5981d2cd NO-JIRA Adding note on prefetch 2024-05-30 11:39:20 -04:00
Clebert Suconic
77c9b06862 NO-JIRA Adding some doc on the queue prefetch logic
I'm just adding some context to the code here. I have had to explain these variables a few times to different people,
I guess it's time to make that little explanation as part of the code now.
2024-05-30 11:07:43 -04:00
Clebert Suconic
032597dba3 ARTEMIS-4786 Avoid ConcurrentModificationException while queue.destroy in page
We observed this assert error in the netty collection used for acks:

java.lang.AssertionError: null is not a legitimate internal value. Concurrent Modification?
at io.netty.util.collection.IntObjectHashMap.toExternal(IntObjectHashMap.java:103) ~[netty-common-4.1.109.Final.jar:4.1.109.Final]
at io.netty.util.collection.IntObjectHashMap.access$900(IntObjectHashMap.java:37) ~[netty-common-4.1.109.Final.jar:4.1.109.Final]
at io.netty.util.collection.IntObjectHashMap$PrimitiveIterator.value(IntObjectHashMap.java:650) ~[netty-common-4.1.109.Final.jar:4.1.109.Final]
at io.netty.util.collection.IntObjectHashMap$2$1.next(IntObjectHashMap.java:234) ~[netty-common-4.1.109.Final.jar:4.1.109.Final]

this will avoid the cleanup and rely on GC for the cleanup.

PagingLeakTest is being added to make sure the cleanup is actually not needed.
2024-05-30 09:31:32 -04:00
iliya
6b5f78bfc4 ARTEMIS-4165 Delete messages in case of queue destroy
Messages should be acked even while paging. That will allow page transactions or anything else
to be cleared accordingly.
2024-05-30 09:31:32 -04:00
Clebert Suconic
6cd9c9730b [maven-release-plugin] prepare for next development iteration 2024-05-29 12:13:17 -04:00
Clebert Suconic
30ea6eeae0 [maven-release-plugin] prepare release 2.34.0 2024-05-29 12:13:16 -04:00
Clebert Suconic
7544667907 NO-JIRA Removing non used field on PostOfficeImpl 2024-05-28 21:09:26 -04:00
Clebert Suconic
fa06b70134 ARTEMIS-4784 Large Messages should removed from HashMap on ReplicatioEndpoint after being closed 2024-05-28 21:04:33 -04:00
Justin Bertram
acc64b184e ARTEMIS-4306 add authn/z cache metrics
This commit includes the following changes:

 - Management operations to get sucess & failure counts for authn and
   authz along with the corresponding audit logging.
 - Export the aforementioned authn & authz metrics.
 - Export metrics for the underlying authn & authz caches including the
   ability to enable/disable them.
 - Update metrics tests to validate tags in addition to keys and values.
 - Update documentation to explain new functionality and clarify
   existing metric tags.
2024-05-28 17:27:54 -04:00
Justin Bertram
c47713454c ARTEMIS-4726 fix original commit
The original commit (1ee3e884b707a659d924188048c2960a3b22df35) for this
issue wasn't completely correct. This commit fixes those issues so that
both the messageCount and scheduledMessageCount are accurate now when
a scheduled message is removed by its ID.
2024-05-23 12:56:45 -05:00
Justin Bertram
7e151ee1ce ARTEMIS-4768 _AMQ_SCHED_DELIVERY msg prop lost after broker restart 2024-05-22 14:10:37 -05:00
Justin Bertram
1ee3e884b7 ARTEMIS-4726 removing scheduled msg from q via mngmnt can cause negative msg count 2024-05-22 14:10:08 -05:00
Robbie Gemmell
f64d918406 ARTEMIS-4778: rework tests manipulating Xxe config so it is reset after class, and not updated at all for skipped tests 2024-05-21 16:47:20 +01:00
Robbie Gemmell
98e1389a6e ARTEMIS-4778: clean up configuration test heirarchy, remove hundreds of duplicate tests, isolate parameterized tests 2024-05-21 16:47:20 +01:00
Robbie Gemmell
3474a39301 ARTEMIS-4772: fix build failure from modified PR #4935 commit f7b15e351ef712213e0db1d072a2f0ce84f7bb8e 2024-05-21 10:49:57 +01:00
m.napieraj
f7b15e351e
ARTEMIS-4772 expose broker plugin classes via management 2024-05-20 13:54:33 -05:00
Clebert Suconic
49189cd7e6 ARTEMIS-4776 Pages may leak as open on Replicated Target
PagingStore is supposed to send an event to replica on every file that is closed.
There are a few situation where the sendClose is being missed and that could generate leaks on the target
2024-05-19 22:09:44 -04:00
Gary Tully
f5973d53e6 ARTEMIS-4766 - validate type before newInstance calls 2024-05-17 16:33:08 +01:00
Gary Tully
2f77ca2abb ARTEMIS-4763 support .class values for non string attributes, properties config of metrics plugins 2024-05-17 16:33:08 +01:00
Clebert Suconic
e47d8ea7c1 ARTEMIS-4774 Fixing PageCounters out of sync after AckMnager retries 2024-05-17 09:47:34 -04:00
Clebert Suconic
22540cc3ab ARTEMIS-4773 Performance improvement on page.sync
the sync should be called outside of the lock.
if the file was already closed it should then just be ignored as the data was locked anyway.
2024-05-17 09:47:34 -04:00
Clebert Suconic
cd563b49ad ARTEMIS-4765 DuplicateIDCache on Mirror Target is using 20K elements instead of amqpCredits
in this commit I'm storing a binding record with the address-settings for the correct size
this is also validating eventual merges of the AddressSettings in the same namespace.
2024-05-09 15:02:15 -04:00
Justin Bertram
2a43c53bb2 ARTEMIS-4759 restore compatibility with LiveOnlyPolicyConfiguration 2024-05-09 14:03:49 -04:00
Clebert Suconic
abb1a7739e Reverting ARTEMIS-4765
I am gettig a few test failures when running the server in soak with Mirroring.
I will reapply the changes after some testing.
2024-05-07 22:09:33 -04:00