Commit Graph

1661 Commits

Author SHA1 Message Date
Clebert Suconic 31345c5b51 ARTEMIS-3198 Fixing test after concurrency bridge changes 2021-03-22 21:56:02 -04:00
AntonRoskvist e9e1e476ee ARTEMIS-3198 Add concurrency option on core bridges 2021-03-22 19:13:06 -04:00
Clebert Suconic b4beea1f2c ARTEMIS-3150 Broker Connections with restricted security
The local connections and sessions created internally were supposed to bypass security
just like bridges and other internal components
2021-03-22 17:32:43 -04:00
Markus Meierhofer 1d1a9433bc ARTEMIS-2870: Transfer connection close/failure listeners one by one on reattachment
Previously, when a session was reattached, all the close/failure listeners
were removed from the old connection and set onto the new connection.
This only worked when at most 1 session of the old connection was
transferred: When the second session was transferred, the old
connection already didn't contain any close/failure listeners anymore,
and therefore the list of close/failure listeners was overwritten by
an empty list for the new connection.

Now, when a session is being transferred, it only transfers the
close/failure listeners that belong to it, which are the session itself
+ the TempQueueCleanerUppers.

Modified a test to check whether the sessions are failure listeners of
the new connection after reattachment.
2021-03-18 18:26:07 -04:00
gtully 8d848f4615 ARTEMIS-3188 / ARTEMIS-2108 Fixing StackOverFlow over bindings
This fix was done in collaboration with Gary Tully
2021-03-18 18:08:42 -04:00
gtully 052bd60da4 ARTEMIS-3180 - fix multiple path match case in wildcard address map 2021-03-18 11:24:51 +00:00
Markus Meierhofer 3b9008bda0 ARTEMIS-3174: Set new connection on ServerSession during reattachment
During session reattachment, also set the new connection on the
"session" member of the ServerSessionPacketHandler. Until now,
the connected ServerSessionImpl instance still referenced the old
connection although it had already been transferred on the new connection.
2021-03-17 13:36:09 -05:00
Justin Bertram fea5e246e7 ARTEMIS-3166 support disabling configuration file reload 2021-03-17 09:52:13 -05:00
Justin Bertram eb26f67ab6 ARTEMIS-3137 support XPath filters
Change summary:
 - Remove the existing Xalan-based XPath evaluator since Xalan appears
   to be no longer maintained.
 - Implement a JAXP XPath evaluator (from the ActiveMQ 5.x code-base).
 - Pull in the changes from https://issues.apache.org/jira/browse/AMQ-5333
   to enable configurable XML parser features.
 - Add a method to the base Message interface to make it easier to get
   the message body as a string. This relieves the filter from having
   to deal with message implementation details.
 - Update the Qpid JMS client to get the jms.validateSelector parameter.
2021-03-10 09:32:23 -05:00
gtully 20007ad485 ARTEMIS-3141 - respect the browse page limit on all queue controll/jmx operations that use a queue browser 2021-03-10 08:51:06 -05:00
Justin Bertram 1a149b9af4 ARTEMIS-3102 throw more accurate exception when re-authentication fails 2021-03-09 13:46:08 -06:00
Clebert Suconic 05c55d382c ARTEMIS-3133 Just Encapsulating ObjectPool into a small utility 2021-03-04 10:38:14 -05:00
franz1981 bc83b31232 ARTEMIS-3133 Reduce memory usage for Null an Ping packets 2021-03-03 13:51:05 -05:00
Domenico Francesco Bruscino 5aa3a4b6aa ARTEMIS-3147 Fix auto created addresses reload 2021-03-03 13:49:59 -05:00
sebthom 026f3859a2 ARTEMIS-3117 Provide CachingOpenSSLContextFactory
to mitigate performance degradation in JDK 11 during TLS connection
initialization.
2021-03-03 10:06:45 -06:00
Andy Taylor 46858bcfc3 ARTEMIS-3130 - fixing broken filter fields in console
https://issues.apache.org/jira/browse/ARTEMIS-3130
2021-03-02 12:55:45 +01:00
Christopher L. Shannon (cshannon) 4c4d7a71cb ARTEMIS-2802: Add a null check when checking matching metaData inside
Federated Queue

Other protocols besides CORE may not have a metadata map so we need to
check for null before passing to the filter matcher
2021-03-01 13:41:20 -06:00
franz1981 6c7231928f ARTEMIS-3138 Shared Nothing Live broker shouldn't try to connect to itself (2) 2021-02-25 10:19:02 -05:00
franz1981 03a8e20de2 ARTEMIS-3138 Shared Nothing Live broker shouldn't try to connect to itself 2021-02-25 10:19:02 -05:00
gtully a0ce3812ba ARTEMIS-3067, ARTEMIS-3135 - rework accounting for lazy decoding by directly referencing the owning page store, owner now tracked on a message rather than the message reference. This avoids the error prone checks around potential decoding sites 2021-02-24 15:50:13 +00:00
gtully a56ade38b4 ARTEMIS-3135 - track possible change in memory estimate when messages are converted to maps for JMX or UI display, follows up from ARTEMIS-3067 2021-02-23 15:30:40 +00:00
Clebert Suconic 12c8096a23 ARTEMIS-3093 Ordering on multiple consumers and core with rollback 2021-02-22 15:10:04 -05:00
franz1981 6126d926dd ARTEMIS-3045 ReplicationManager can batch sent replicated packets 2021-02-19 15:18:20 -05:00
sebthom f9e23def8d ARTEMIS-3121 Avoid creation of unnecessary StringBuilder instance in
Netty#getProtocols() and simplify implementation
2021-02-19 14:25:22 -05:00
Petr Kužel a75dce9577 ARTEMIS-2931: Resolving potential NPEs detected by eclipse
WARNING: the eclipse static analyser is pretty limited and it cannot cope with cases like: correlated variables, exception paths, .... 70% of eclipse warnings on artemis codebase is a false alarm.

Anyway some variable correlations can be eliminated and code becomes more readable for humans too.

For "never-throws", the assumption is made explicit. If you disagree with the reverse-engineered assumption then it is likely an indication of a true potential NPE.

Last but not least, copy&paste is a common source of bugs. I suspect eclipse indirectly detected one such case.

Hope it helps
2021-02-11 20:52:16 -06:00
Clebert Suconic e5b27d6de7 NO-JIRA Adding thread dump logging 2021-02-10 10:40:24 -05:00
Justin Bertram ea6b133ac8 ARTEMIS-3109 unsetting expiry-address results in excessive logging 2021-02-09 11:21:52 -05:00
Justin Bertram cd7600314f ARTEMIS-3108 fixing yet another test failure 2021-02-08 11:45:26 -06:00
Justin Bertram 1dd34e6e54 ARTEMIS-3108 fixing another test failure 2021-02-08 11:43:43 -06:00
Justin Bertram 05e7198099 ARTEMIS-3108 fix test failure 2021-02-08 11:37:11 -06:00
Justin Bertram 52de3827fe ARTEMIS-3108 bridge XML config doesn't allow -1
The value `-1` is valid for both the confirmation-window-size and the
producer-window-size elements.
2021-02-08 12:19:42 -05:00
Justin Bertram 86cb888b62 NO-JIRA remove failover-on-server-shutdown from bridge doc 2021-02-08 11:18:23 -05:00
Justin Bertram 0148eec79a ARTEMIS-3099 wrong default producer-window-size on bridge in xml 2021-02-07 11:16:31 -05:00
岳豹 9c5ec1b07c ARTEMIS-3105 large message file not closed on backup side 2021-02-07 10:41:41 +08:00
Justin Bertram b4f8aada3c ARTEMIS-3092 inconsistent JDBC config logging 2021-02-04 15:32:51 -05:00
Justin Bertram 4b314e2aab NO-JIRA fix JDBC parsing typo 2021-02-04 15:32:51 -05:00
Justin Bertram 15e3cdf409 ARTEMIS-3096 bridge config using wrong default conf-window-size 2021-02-04 13:48:37 -06:00
Marcos Singermann 69fb226054 ARTEMIS-3068 Fix HierarchicalRepository matcher comparator 2021-02-03 13:12:34 -05:00
franz1981 9e06a0645b ARTEMIS-3051 Fix MessageReferenceImpl::getMemoryEstimate 2021-02-03 10:27:09 -05:00
franz1981 71685bf6bf ARTEMIS-3051 Fix MessageReferenceImpl::getMemoryEstimate 2021-02-03 10:27:08 -05:00
Domenico Francesco Bruscino bcdb13365e ARTEMIS-3075 Skip temporary queues scale down 2021-02-03 10:20:42 -05:00
Erwin Dondorp 4c611a6670 NO-JIRA fixed debug message 2021-02-03 10:19:06 -05:00
Tomas Hofman ebeea15c2a ARTEMIS-3074 Add ActiveMQServerControl#createBridge() method variant accepting a JSON string 2021-02-01 19:21:40 -05:00
Erwin Dondorp bd9ca52d9a NO-JIRA added space to separate 2 words that otherwise appear joined 2021-02-01 19:20:51 -05:00
Justin Bertram d9e114da55 ARTEMIS-3089 direct delivery can break LVQ+non-destructive 2021-02-01 19:19:20 -05:00
gtully d186d20406 ARTEMIS-3067 - track application properties in memory estimate and check for modification after potential filter execution 2021-02-01 09:21:17 -05:00
gtully 05e9cfed4c ARTEMIS-3064 - ensure useTopologyForLoadBalancing is disabled when ha=false 2021-01-28 15:26:15 -05:00
Clebert Suconic c019218c4e ARTEMIS-3084 Eliminate Block on moving to next file on libaio 2021-01-28 11:10:40 -05:00
Justin Bertram 88b21f9039 ARTEMIS-3082 fix non-destructive + rollback 2021-01-27 20:41:33 -05:00
Ryan Yeats 86a2cad12a ARTEMIS-1884 add plugin API for message level authorization policies 2021-01-25 13:44:36 -06:00
Justin Bertram 4fbc8bf67d ARTEMIS-3008 mngmnt op to reload config file 2021-01-25 13:35:19 -06:00
Justin Bertram 9319f0c8c8 ARTEMIS-3012 incorrect fallback consumer authorization
The fallback consumer authorization implemented in ARTEMIS-592 needs to
check for an *exact* security-settings match otherwise in certain
configurations a more general and more permissive setting might
be used instead of the intended more specific and more restrictive
setting.
2021-01-25 13:34:18 -06:00
Sebastian Thomschke 193374d71d NO-JIRA Minor code improvement in NettyAcceptor class
Make public static fields final and remove an unused private class field.
2021-01-25 13:23:52 -06:00
Domenico Francesco Bruscino eea619137f ARTEMIS-3073 Improve replication manger NPE logs 2021-01-20 11:27:03 -05:00
gtully c2c637407e ARTEMIS-2937 - tidy up shutdown, resolve intermittent failure in org.apache.activemq.artemis.tests.integration.amqp.connect.AMQPReplicaTest#testReplicaCatchupOnQueueCreates 2021-01-20 11:26:08 -05:00
Andy Taylor 4a646e4415 ARTEMIS-3072 - Management methods check for null and not for empty strings
https://issues.apache.org/jira/browse/ARTEMIS-3072
2021-01-19 14:36:38 +00:00
Clebert Suconic 78c0792989 ARTEMIS-3065 AMQP Anonymous producer would eventually block 2021-01-13 15:46:54 -05:00
franz1981 22dbeb8022 ARTEMIS-3049 Simplify PagePosition API 2021-01-12 17:28:13 -05:00
franz1981 54b0094cd6 ARTEMIS-3049 Simplify PageCache API 2021-01-12 17:28:13 -05:00
franz1981 19b04531c6 ARTEMIS-3049 Reduce live page lookup cost 2021-01-12 17:28:13 -05:00
Justin Bertram 9aa7a10744 ARTEMIS-3058 improper AddressSettings merge
The merge method in AddressSettings should *not* use any getters. It
should reference the relevant variables directly. Using any getters will
return default values in the underlying value is null. This can cause
problems for hierarchical settings.

Also fixed a few potential NPEs exposed by the test-case.
2021-01-11 11:38:59 -05:00
Clebert Suconic b4d66b684a ARTEMIS-3054 Fix inconsistencies between replica catchup and page cleanup 2021-01-08 13:48:41 -05:00
gtully 546bbfebfb ARTEMIS-3033 - implement address tree map for wildcards in place of linked addresses 2021-01-06 20:31:46 +00:00
Justin Bertram 9fc22675df ARTEMIS-3031 add new callback for broker deactivation
The existing deactivation callback happens *after* several important
services are shutdown (e.g. the remoting service which allows client
connectivity). This commit adds a new callback which is invoked *before*
any services are stopped. This is useful for embedded use-cases where
applications want to stop gracefully before any part of the broker is
stopped.

A default, empty method implementation is provided so that existing
callback implementations don't need to change.
2021-01-06 10:49:02 -05:00
Andy Taylor ea7f001776 ARTEMIS-3043 - improvements on new console
https://issues.apache.org/jira/browse/ARTEMIS-3043
2021-01-06 10:47:57 -05:00
Clebert Suconic a6160dac14 ARTEMIS-3052 Not block on Binding operations
There no need to test on this commit,
since current tests are enough coverage on this change.
2021-01-06 10:27:01 -05:00
franz1981 2b5d99bbd1 ARTEMIS-3016 Refactored duplicate ids cache 2021-01-06 09:05:01 -05:00
franz1981 b3b5d4893c ARTEMIS-3016 Reduce DuplicateIDCache memory footprint 2021-01-06 09:05:01 -05:00
Clebert Suconic 372220ad3f NO-JIRA Avoiding NPE on ManagementServiceImpl 2020-12-22 13:12:15 -05:00
Domenico Francesco Bruscino 0456b8845a ARTEMIS-3041 Allow encrypted data source property values 2020-12-22 11:07:30 -05:00
Domenico Francesco Bruscino d7fc2fb8b8 ARTEMIS-3040 Fix reloading large messages paged before 2.12 2020-12-21 11:03:11 -05:00
Clebert Suconic 6b7d963f45 ARTEMIS-3039 Fixing network isolation signal on replication 2020-12-18 16:56:14 -05:00
Clebert Suconic 29e65d87da ARTEMIS-3039 Fixing network isolation signal on replication
This is fixing BackupAuthenticationTest
2020-12-18 12:30:31 -05:00
Clebert Suconic 3337d253a6 NO-JIRA Fixing Intermittent failures 2020-12-18 09:24:29 -05:00
franz1981 2b585508cc ARTEMIS-3025 JsonReader char[] leak 2020-12-09 10:55:09 -06:00
Tadayoshi Sato c0b4a10526 ARTEMIS-3017 ArtemisJMXSecurity bulk canInvoke operation always returns true 2020-12-09 10:48:53 -06:00
Clebert Suconic 825341734a ARTEMIS-3024 Expiry or DLQ Retry not working with AMQP 2020-12-08 14:13:53 -05:00
Clebert Suconic 6a6a3b3863 ARTEMIS-3023 Avoid opening AMQP Large Message for final parsing 2020-12-07 21:24:45 -05:00
Clebert Suconic e6a6e81b02 ARTEMIS-3019 expiry changes in AMQP Large Message 2020-12-07 10:44:51 -05:00
Domenico Francesco Bruscino 7eb22c18db ARTEMIS-3014 Fix JMX RBAC guard 2020-11-30 11:12:25 -06:00
gtully 7b9641dc9a ARTEMIS-3009 - reference remoteBinding loadbalancing type on add binding, rather then doing a second pass via the po and address manager. rework ARTEMIS-1680 2020-11-25 10:28:11 +00:00
gtully a5d7a043dc ARTEMIS-2990 - alway be getBiased and only publish complete records and only calculate linked addresses once ARTEMIS-2990 2020-11-24 13:33:21 +00:00
Clebert Suconic 686036b1a4 ARTEMIS-3007 Checking if a message becomes large during copy
This is to avoid shutting down the server on a critical failure in case the message is a few bytes shy
from beyond the max buffer size.

This will prevent the issue.
2020-11-22 23:42:25 -05:00
Domenico Francesco Bruscino 27392b1d7e ARTEMIS-3005 Fix scaling down AMQP messages routing 2020-11-20 14:48:40 -05:00
Justin Bertram ec2cb19f2d ARTEMIS-3003 NPE when reloading persisted security-setting 2020-11-20 10:08:39 -05:00
Luis De Bello a2d827e23f ARTEMIS-2991 Removing HttpAcceptorHandler from HttpKeepAliveRunnable when upgrade to websocket connection 2020-11-18 15:04:52 -06:00
sebthom 80c51803da ARTEMIS-3001 Provide address and queue count via ActiveMQServerControl
See https://issues.apache.org/jira/browse/ARTEMIS-3001
2020-11-17 15:55:50 -05:00
franz1981 923fcb7fe4 ARTEMIS-2990 Improve scalability of wildcard address manager add/remove 2020-11-17 14:39:17 -05:00
Justin Bertram 4bb9ed2d4e ARTEMIS-2986 deleting scheduled messages not permanent
When deleting a durable scheduled message via the management API the
message would be removed from memory but it wouldn't be removed from
storage so when the broker restarted the message would reappear.

This commit fixes that by acking the message during the delete
operation.
2020-11-16 23:46:32 -05:00
gtully d0bf65ea65 ARTEMIS-2990 - update wildcard address map on creation only, avoid duplicates and duplicate checks 2020-11-13 11:15:09 +00:00
gtully 683879495c ARTEMIS-2990 - avoid auto boxing on binding id used as map key 2020-11-13 10:03:28 +00:00
gtully 9675ecae42 ARTEMIS-2985 - don't block netty threads for mqtt protocol actions 2020-11-12 21:01:00 +00:00
Domenico Francesco Bruscino 14ec3cb7b0 ARTEMIS-2976 Remove password before creating server locator 2020-11-05 11:39:35 -05:00
Justin Bertram ecead9b130 ARTEMIS-2974 audit logger can print wrong user info
Using a ThreadLocal for the audit user information works in most cases,
but it can fail when dispatching messages to consumers because threads
are taken out of a pool to do the dispatching and those threads may not
be associated with the proper credentials. This commit fixes that
problem with the following changes:

 - Passes the Subject explicitly when logging audit info during dispatch
 - Relocates security audit logging from the SecurityManager
implementation(s) to the SecurityStore implementation
 - Associates the Subject with the connection properly with the new
security caching
2020-11-05 11:38:08 -05:00
franz1981 e4a2a20c22 ARTEMIS-2941 Fixing query timeout value 2020-10-30 17:57:28 +01:00
franz1981 b39c9c9221 ARTEMIS-2823 Apply default datasource configs if not overridden 2020-10-30 17:57:28 +01:00
Clebert Suconic 9b0f7605cb ARTEMIS-2969 / ARTEMIS-2937 Dealing with Connection Timeout properly on AMQP Broker Connections 2020-10-29 21:55:10 -04:00
Clebert Suconic dc7eb5c23d ARTEMIS-2937 Broker connection improvements
- Adding a paragraph about addressing and distinct queue names
- Renaming match on peers, senders and receivers as "address-match"
- Changing qpid dispatch test to use a single listener
- Fixing reconnect attemps message
2020-10-29 15:01:51 -04:00
Clebert Suconic bf52134dc0 ARTEMIS-2937 Fixing Tests and some review 2020-10-28 15:08:48 -04:00
Clebert Suconic 8499eac76c ARTEMIS-2937 Server Side AMQP Connectivity with options to transfer queues or replicate data 2020-10-28 11:37:25 -04:00