Commit Graph

10750 Commits

Author SHA1 Message Date
Justin Bertram c47713454c ARTEMIS-4726 fix original commit
The original commit (1ee3e884b7) 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
Timothy Bish 3244965155 ARTEMIS-4771 AMQP Large Message Writer no-op staged write if already closed
If the writer is closed while flow controlled write attempts are pending in the
connection executor an NPE is thrown which should be avoided as the closed state
should trigger the writes to stop. Add fix and test that checks that this works
as it should.
2024-05-23 17:42:34 +01: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 e13d65b16d ARTEMIS-4420 user auth leaks into non-Artemis servlets 2024-05-22 14:10:25 -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 7849e2dcbf ARTEMIS-4778: extract base class and classes from parameterized test with subclass that skips to de-parameterize itself 2024-05-21 16:47:20 +01:00
Robbie Gemmell 3c84f26413 ARTEMIS-4778: split two Nested test classes (one parameterized, other not) into their own class files 2024-05-21 16:47:20 +01:00
Robbie Gemmell 243ea9aa01 ARTEMIS-4778: remove spawn check rule, not needed as the tests dont spawn 2024-05-21 16:47:20 +01:00
Robbie Gemmell 3e20687cf3 ARTEMIS-4778: replace various assertEquals checks with more apropriate assertTrue / assertFalse / assertNull 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
Justin Bertram 3c058e98f1 ARTEMIS-3622 MQTT can deadlock on client cxn/discxn
This commit fixes the deadlock described on ARTEMIS-3622 by moving the
synchronization "up" a level from the MQTTSession to the
MQTTConnectionManager. It also eliminates the synchronization on the
MQTTSessionState in the MQTTConnectionManager because it's no longer
needed. This change should not only eliminate the deadlock, but improve
performance relatively as well.

There is no test associated with this commit as I wasn't able to
reproduce the deadlock with any kind of straight-forward test. There was
a test linked on the Jira, but it involved intrusive and fragile
scaffolding and wasn't ultimately tenable. That said, I did test this
fix with that test and it was successful. In any case, I think static
analysis should be sufficient here as the changes are pretty
straight-forward.
2024-05-21 15:15:44 +01:00
Robbie Gemmell 3474a39301 ARTEMIS-4772: fix build failure from modified PR #4935 commit f7b15e351e 2024-05-21 10:49:57 +01:00
Justin Bertram 7067b75670
NO-JIRA clarify expiry config doc 2024-05-20 15:08:53 -05:00
Justin Bertram a88eba2bdb
This closes #4935 2024-05-20 14:33:50 -05:00
m.napieraj f7b15e351e
ARTEMIS-4772 expose broker plugin classes via management 2024-05-20 13:54:33 -05:00
coursar 1de617e503 NO-JIRA: fix docs locator.createClientSessionFactory should be locator.createSessionFactory 2024-05-19 22:20:08 -04: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 ae5d98337f NO-JIRA Improve a specific QueueControlTest
There is no need to use our own AddressSettings extension here.
This is just simplifying the test.
2024-05-15 11:55:01 -04:00
Gary Tully 23522fd83d NO-JIRA fix intermittent failure, this test failed on local repeat getting a null from immediate 2024-05-11 20:45:13 -04:00
Clebert Suconic e78136b429 ARTEMIS-4743 Renaming --loop-sleep as just --sleep
Notice that I'm keeping the old argument here as hidden
As I keep using this myself, my brain always go to ./artemis queue stat --sleep

So, I think people would feel more comfortable if the parameter was renamed.
2024-05-10 17:03:10 -04:00
Frederico Alves 77076452f2 ARTEMIS-4770: Upgrade BouncyCastle to 1.78
This closes #4927
2024-05-10 14:48:46 +01:00
Robbie Gemmell daf37ab0e1 ARTEMIS-4769: update to pem-keystore 2.4.0 2024-05-10 14:47:43 +01: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
Clebert Suconic 946d3338b3 ARTEMIS-4765 Adjusting test parameters 2024-05-07 20:51:31 -04:00
Clebert Suconic 355c600ea8 ARTEMIS-4765 DuplicateIDCache on Mirror Target is using 20K elements instead of amqpCredits 2024-05-07 20:42:10 -04:00
Clebert Suconic 3c46871f79 ARTEMIS-4743 Allow single line header option
This option would restore the previous presentation form without the line
split on the header.

Also some improvements on loop options
2024-05-06 16:56:48 -04:00
Clebert Suconic f9e2f09207 ARTEMIS-4762 NPE when running 'artemis queue stat' against older server 2024-05-06 16:56:48 -04:00
Justin Bertram eac816f6bd ARTEMIS-4751 upgrade to Apache parent 32
Due to https://github.com/apache/maven-apache-parent/pull/188 the
property `maven.compiler.release` is now being set which precludes
exporting and using any internal Java classes. Therefore this commit
removed references to `--add-exports` from the build, switches to
reflection, and adds `--add-opens` to the runtime JVM parameters.
2024-05-06 13:26:17 -05:00
Justin Bertram e8f449973a ARTEMIS-4755 upgrade Jackson to 2.17.0 2024-05-06 13:26:08 -05:00
Justin Bertram d568f0dd85 ARTEMIS-4753 upgrade Checkstyle to 10.16.0 2024-05-06 13:25:59 -05:00
Justin Bertram cb69d2b2f9 ARTEMIS-4756 upgrade Commons IO to 2.16.1 2024-05-06 13:25:50 -05:00
Justin Bertram 732b6dbcda ARTEMIS-4757 upgrade Netty to 4.1.109.Final 2024-05-06 13:25:42 -05:00
Clebert Suconic 23ca774f43 NO-JIRA fixing logger.info as logger.debug 2024-05-06 08:59:07 -04:00
Justin Bertram b2486db000
NO-JIRA clarify docs around queue auto-creation 2024-05-03 11:51:17 -05:00
Clebert Suconic 054f7e2e85 ARTEMIS-4743 Improve Queue Stat output by allowing --loop as an option 2024-05-02 17:53:47 -04:00
Clebert Suconic c523458a9a ARTEMIS-4758 Hardening Mirroring
This is a list of improvements done as part of this commit / task:

* Page Transactions on mirror target are now optional.

If you had an interrupt mirror while the target destination was paging, duplicate detection would be ineffective unless you used paged transactions
Users can now configure the ack manager retries intervals.
Say you need some time to remove a consumer from a target mirror. The delivering references would prevent acks from happening. You can allow bigger retry intervals and number of retries by tinkiering with ack manager retry parameters.

* AckManager restarted independent of incoming acks

The ackManager was only restarted when new acks were coming in. If you stopped receiving acks on a target server and restarted that server with pending acks, those acks would never be exercised. The AckManager is now restarted as soon as the server is started.
2024-05-02 17:23:28 -04:00
Justin Bertram afd7951eb2 ARTEMIS-4749 simplify switch in ThreadDumpUtil 2024-05-02 15:38:05 -04:00
Justin Bertram b209dd013d ARTEMIS-1769 mitigate null 2024-05-02 16:42:11 +01:00
Timothy Bish d7a7116a4c ARTEMIS-4754 Structure the names used for federation internal queues
When creating internal temporary queues for the federation control links and the
events link we should use a structured naming convention to ease in configuring
security for the federation user where all internal names fall under a root prefix
which can be used to grant read and write access for the federation user. This
change allows security on the wildcarded address "$ACTIVEMQ_ARTEMIS_FEDERATION.#".
This change also includes some further restrictions added to federation resources
and adds support for wildcarding '$' prefixed addresses.
2024-05-02 15:54:13 +01:00
Justin Bertram 8b73335b46 ARTEMIS-4752 upgrade ErrorProne to 2.27.0
The upgraded ErrorProne found some new issues so this commit fixes those
as well.
2024-05-02 10:10:17 +01:00
Clebert Suconic 14e83faa1b ARTEMIS-4750 AMQP Large Message flow control to use runAfter
The resume delivery on AMQP Large Message Writer is using runNow.
When a flow control is paused and then resumed, the runNow will make the first read to happen inline to the thread that's resuming other deliveries.
It would be better to not run the delivery within the same call. Hence the change here is simple, being just using a connection.runLater instead of runNow.
I have seen this on a thread dump from a production server.
No semantic issues were encountered but there was a theory that the Netty thread responsible to resume would be busy with a delivery when not supposed to.
Better to be safe on this case.
2024-05-01 13:51:04 -04:00
Clebert Suconic 817dc41ed4 NO-JIRA Test validating multiple mirrors connected to a node 2024-04-30 22:48:38 -04:00
Clebert Suconic 5d5b2febf0 NO-JIRA fixing log.trace 2024-04-30 14:24:17 -04:00