2201 Commits

Author SHA1 Message Date
Alexey Markevich
383345a4f6 ARTEMIS-4239 use StandardCharsets.UTF_8 2023-05-08 15:10:23 -05:00
Justin Bertram
c2bada6a77 ARTEMIS-4267 original exception lost for NoCacheLoginException
When skipping the authentication cache details for the original
exception are not logged.

This commit ensures these details are logged and adopts the
ExceptionUtils class from Apache Commons Lang in lieu of the previous
custom implementation.
2023-05-08 17:01:35 +02:00
Gary Tully
c5d872575e ARTEMIS-4256 - support removal of configuration via properties 2023-05-05 11:58:15 +01:00
Gary Tully
cf3afc4096 ARTEMIS-4263 authenticator to delegate to artemis jaas login modules and populate callback handler 2023-05-05 10:00:52 +01:00
Justin Bertram
6254c140e3 ARTEMIS-4212 handful of updates
- fix syntax used for 'addresses' CLI option
 - update release notes
 - enforce new semantics on parsing & add test
2023-05-04 12:25:15 -07:00
Justin Bertram
dc0b3ac55a ARTEMIS-4266 mitigate NPE with bad SSL config 2023-05-03 06:26:02 +02:00
Justin Bertram
acd6605ebf ARTEMIS-4212 fix tests 2023-04-28 06:54:16 -07:00
Justin Bertram
1fa5c761c6 ARTEMIS-4212 fix management address issues 2023-04-28 06:54:16 -07:00
Domenico Francesco Bruscino
126765decc ARTEMIS-4252 Refine waitForBridges 2023-04-26 17:09:59 -05:00
Domenico Francesco Bruscino
cc9db6b2f7 ARTEMIS-4244 Set web config using system properties 2023-04-26 17:07:32 -05:00
Clebert Suconic
c2ad54fa91 ARTEMIS-4247 Fixing BrokerInSyncTest::testExpiryNoReaper
Once the context is set to disable mirror, it should stay that way even if reset is called.
2023-04-26 00:28:12 -04:00
Justin Bertram
74fa4ca758 ARTEMIS-4212 fix sending msgs to address w/mismatching routing types
When sending, for example, to a predefined anycast address and queue
from a multicast (JMS topic) producer, the routed count on the address
is incremented, but the message count on the matching queue is not. No
indication is given at the client end that the messages failed to get
routed - the messages are just silently dropped.

Fixing this problem requires a slight semantic change. The broker is now
more strict in what it allows specifically with regards to
auto-creation. If, for example, a JMS application attempts to send a
message to a topic and the corresponding multicast address doesn't exist
already or the broker cannot automatically create it or update it then
sending the message will fail.

Also, part of this commit moves a chunk of auto-create logic into
ServerSession and adds an enum for auto-create results. Aside from
helping fix this specific issue this can serve as a foundation for
de-duplicating the auto-create logic spread across many of the protocol
implementations.
2023-04-25 16:08:31 -05:00
Clebert Suconic
fea84e39f5 ARTEMIS-4247 BrokerClustering vs Mirror code improvements 2023-04-25 08:10:58 -07:00
Domenico Francesco Bruscino
ef4501292e ARTEMIS-4252 Fix flaky QuorumFailOverTest tests 2023-04-24 06:11:51 -07:00
Clebert Suconic
2a81a0a3c6 ARTEMIS-4247 Inconsistencies between Broker Clustering and AMQP Mirror
- activemq.notifications are being transferred to the target node, unless an ignore is setup
- topics are being duplicated after redistribution
- topics sends are being duplicated when a 2 node cluster mirrors to another 2 node cluster, and both nodes are mirrored.
2023-04-21 10:30:32 -05:00
Justin Bertram
673481369f ARTEMIS-4241 paging + FQQN is broken 2023-04-17 21:51:08 +02:00
Clebert Suconic
4eb978b931 ARTEMIS-4233 Disabling RefCounting debug and error after paged messages 2023-04-12 16:40:26 -07:00
Clebert Suconic
e368dacc78 ARTEMIS-4207 Improving redistribution fix over large messages 2023-04-09 17:05:17 -07:00
Alexey Markevich
61c687ec9c ARTEMIS-4195 Auth callback to get Client ID
introduce ClientIDCallback to allow JAAS login module to retrieve Client
ID
2023-04-06 11:23:45 -05:00
Justin Bertram
6851e7d677 ARTEMIS-4204 connectors added via management are not durable 2023-04-06 11:22:18 -05:00
Clebert Suconic
6d3dbc4383 ARTEMIS-4233 Large Message Issues After Failed Clients
- interrupted message breaking reference counting
After the server writing to the client is interrupted in AMQP, the reference counting was broken what would require the server restarted
in order to cleanup the files of any interrupted sends.

- Removed consumer during large message delivery damaging large messages
If the consumer failed to deliver messages for any reason, the message on the queue would be duplicated. what would wipe out the body of the message
and other journal errors would happen because of this.

extra debug capabilities added into RefCountMessage as part of ARTEMIS-4206 in order to identify these issues
2023-04-06 07:40:01 -07:00
Clebert Suconic
23bbf76bdf ARTEMIS-4233 Avoiding holder.iter=null with a compile time validation 2023-04-06 07:40:01 -07:00
Justin Bertram
8ba9727b78 ARTEMIS-4210 refactor connection audit logging
This commit fixes the following things:

 - Moves connection audit logging to the resource audit logger instead
   of using a dedicated logger as that would adversely impact upgrading
   users, and arguably didn't make sense in the first place.
 - Mitigates an potential NPE w.r.t. connection ID.
 - Updates the "dummy" management connection to return a valid
   connection ID.
2023-03-30 14:37:17 -07:00
Clebert Suconic
a8d828a510 ARTEMIS-4224 cert-users-LARGE.properties is too big for certain CI machines 2023-03-29 15:00:46 -05:00
Justin Bertram
d2e5ddfe86 ARTEMIS-4210 audit connection creation & destruction 2023-03-28 16:21:04 -05:00
Clebert Suconic
15d39a14ea ARTEMIS-4207 Improved fix on LargeMessage Redistribution
This fix will delay the message.copy to the redistributor itself.
Meaning no copy would be performed if the redistribution itself failed.

No need to remove a copy any longer
2023-03-27 10:45:07 -07:00
Clebert Suconic
6d9bd71901 NO-JIRA I meant to remove this line 2023-03-18 18:48:07 -04:00
Clebert Suconic
d730d1a684 NO-JIRA Testsuite speedup: proper JDBC drop from derby 2023-03-18 15:44:03 -07:00
Domenico Francesco Bruscino
aaa8627795 ARTEMIS-4211 Fix record message id for federated queue consumers
The federated queue consumer has to generate a new id for the messages
received from the upstream broker because they have an id generated by
the store manager of the upstream broker.

Co-authored-by: Clebert Suconic <clebertsuconic@apache.org>
2023-03-18 08:52:21 -07:00
Clebert Suconic
f43d3c4bde ARTEMIS-4207 Removing logger.info added by accident (temporary debug) 2023-03-15 18:01:03 -04:00
Clebert Suconic
8b2be8ef3b ARTEMIS-4207 Removing logger.info added by accident (temporary debug) 2023-03-15 16:24:25 -04:00
Clebert Suconic
3a5601572e ARTEMIS-4207 Redistribution could leave messages stranded in the folder
- redistribute received the handle call, it then copies the message
- the routing table changes
- the message is left behind

With the new version of the server these messages will be removed. But we should remove these right away
2023-03-15 12:46:50 -07:00
Clebert Suconic
4babdab18c NO-JIRA Cleanup MBeanServer usage in the testsuite as it is leaking
Basically I started the testsuite and attached check leak with "java -jar check-leak.jar --pid <pid> --report testsuite-report --sleep 1000" and saw the allocations of this were pretty high.
2023-03-15 12:42:12 -07:00
Clebert Suconic
2c037386b6 ARTEMIS-4206 Unreferenced AMQP Large Messages not removed right away, requiring a reboot 2023-03-15 05:57:51 -07:00
Justin Bertram
39b0f01ca9 ARTEMIS-4202 expand coverage of noCacheExceptions in LDAPLoginModule 2023-03-10 17:49:13 -06:00
Clebert Suconic
294daa0ff6 ARTEMIS-4162 Remove EMPTY_ROUTING_TYPES from AddressInfo
I have seen a werid intermittent failure in the testsuite
caused by some race where the EMPTY_SET ends up Not Empty! Causing weird failures that were really difficult to be investigated
2023-03-10 09:52:27 -08:00
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
dc93f01542 ARTEMIS-4199 PageCounter could leave a record pending in the journal
This is just an annoying thing. as the functionality would work properly if there was a previous value.
No other harm other than the cannot find TX record on startup for this, hence I'm fixing it.
2023-03-07 17:18:43 -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 14536bf311e28f4ae825352f8a2fd49a3b9650bf.
2023-03-06 20:05:18 -05:00
Clebert Suconic
14536bf311 Revert "I'm temporarily reverting "ARTEMIS-4193 Large Message Files orphaned after server killed""
This reverts commit 7e6ce5a259e6564bebeb75609ab64e9b2c270393.
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 9f1927d3fa6dfa8156bc9e07a1a81d438a9d3dd0.
2023-03-06 12:31:54 -05:00
Justin Bertram
97c78525da ARTEMIS-4181 make try-with-resources style consistent 2023-03-03 08:40:51 -06:00
Clebert Suconic
9f1927d3fa ARTEMIS-4193 Large Message Files orphaned after server killed 2023-03-02 19:03:37 -08: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
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
Justin Bertram
fb169bc4af ARTEMIS-4172 sending large msg via core skips plugins & audit log 2023-02-16 13:34:29 -08:00