Commit Graph

11026 Commits

Author SHA1 Message Date
Timothy Bish 0650713b3e NO-JIRA Fix test failed due to missing expectation
Test should add an optional expect close as it is very occasionally able
to hit the wire and the test peer will fail if not expecting it might be.
2024-05-31 13:27:20 -07: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
Timothy Bish 892c1225b0 ARTEMIS-4788 Fix a rare race on broker shutdown in AMQP federation
Race on consumer create and broker shutdown could lead to a deadlocak trying
to access configuration from the policy manager while the federation instance
is trying to shutdown the policy manager.
2024-05-30 19:44:34 -04:00
Clebert Suconic f8dce75ac8 NO-JIRA Fixing imports after removing 2.28 2024-05-30 16:55:55 -04:00
Clebert Suconic f954212765 NO-JIRA removing 2.28 out of MirrorCompatibilityTest
2.28 had a race in its start, where you could eventually lose messages.
This was later fixed, but there's no point on testing the functionality with 2.28 as it will be always broken.
2024-05-30 16:53:36 -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 4c6cded2e7 NO-JIRA Fixing intermittent test failure on PagingTest 2024-05-30 09:58:01 -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 7fbd1b1a51 NO-JIRA Fixing intermittent failure on LargeMessageTest::testSendServerMessageMetrics
When the Database option is used, the packets on the ServerMessage may still be in transit.
We should sync the file on the Database before we can actually send it, otherwise we would get an assertion error on the send method.
2024-05-29 18:49:46 -04:00
Clebert Suconic 5cf206629c NO-JIRA: Fixing up typo. 2024-05-29 13:47:24 -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 a600191dbf RELEASE update on doc 2024-05-29 11:25:08 -04:00
Justin Bertram 4cd4ecb198
ARTEMIS-4306 fix tests 2024-05-28 21:17:50 -05: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
Clebert Suconic 0ca36b7b38 NO-JIRA fixing intermittent test failure on MaxMessagePagingTest 2024-05-28 20:57:53 -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
Clebert Suconic 58fc7cbea1 NO-JIRA fix intermittent failure on LargeMessageRetentionTest 2024-05-28 17:25:52 -04:00
Timothy Bish aab1c484b2 NO-JIRA Fix a few cases of federation test fails on unexpected frames
Add a couple optional flags for performatives that might arrive based on the
timing of connection close or remote detach etc.
2024-05-28 11:52:24 -07:00
Justin Bertram 7d6ab48763
This closes #4938 2024-05-28 11:09:55 -05:00
Michal T b61776e744
ARTEMIS-4783 touch up federation docs 2024-05-28 11:09:55 -05:00
Timothy Bish f4d9cfdca8 NO-JIRA Fix random test failures if flow is omitted
If the remote detach arrives fast enough it can suppress the flow from
being sent by the broker so the test should mark that as an optional frame.
2024-05-28 16:32:23 +01:00
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