Commit Graph

1468 Commits

Author SHA1 Message Date
Clebert Suconic 144c21fb6f ARTEMIS-2453 Fixing deadLock between destroyQueue and removeAddressInfo 2019-08-15 11:38:57 -04:00
Justin Bertram 9d44c40037 ARTEMIS-2449 limit size of producer details
The core server session tracks details about producers like what
addresses have had messages sent to them, the most recent message ID
sent to each address, and the number of messages sent to each address.
This information is made available to users via the
listProducersInfoAsJSON method on the various management interfaces
(JMX, web console, etc.). However, in situations where a server session
is long lived (e.g. in a pool) and is used to send to many different
addresses (e.g. randomly named temporary JMS queues) this info can
accumulate to a problematic degree. Therefore, we should limit the
amount of producer details saved by the session.
2019-08-08 14:24:28 -04:00
Francesco Nigro 191323176a ARTEMIS-2448 group-name ignored in replicated colocated setup 2019-08-08 13:16:22 -04:00
Justin Bertram d379cda374 ARTEMIS-2447 allow mapping admin to manage in LDAP plugin 2019-08-06 15:27:18 -05:00
Clebert Suconic e2d6d07298 ARTEMIS-2441 Avoiding NPE on FileLockNodeManager 2019-08-06 10:34:55 -04:00
Clebert Suconic 205a1399e7 ARTEMIS-2440 Call timeout should retry the connection asynchronously 2019-08-05 12:12:33 -04:00
Clebert Suconic f72409e38f ARTEMIS-2441 Separate Lock Files
Certain devices or file systems won't support record level locking.
For that reason I am changing FileLockNodeManager to use separate files (one for each position) instead of using tryLock(position);
A good example for this would be cephFS where channel.tryLock or channel.tryLock works but it fails at a record level.
2019-08-05 09:29:34 -04:00
Clebert Suconic cd723aa528 ARTEMIS-2440 Connection.fail on sendBlock should be asynchronous
This is following up on ARTEMIS-2327.
2019-08-02 16:37:12 -04:00
Justin Bertram 3a68288db6 ARTEMIS-2439 ServerSessionImpl leaks addr names 2019-08-02 13:27:02 -04:00
Clebert Suconic 73e2d4709d ARTEMIS-2438 Activation cleaning 2019-08-01 16:58:00 -04:00
brusdev b9d7c76d88 NO-JIRA Fix NoProcessFilesBehind build on IBM JDK 8
Remove sun.management.VMManagement to build NoProcessFilesBehind with
IBM JDK 8.
2019-08-01 16:15:40 -04:00
Clebert Suconic 21af85bd94 NO-JIRA Speeding up tests
When it comes to the testsuite, we don't need timed buffers kicking too much.
This should bring some speed for our testsuite
2019-08-01 16:15:18 -04:00
Shailendra Kumar Singh 51fdcca464 ARTEMIS-2410 max-saved-replicated-journals-size=0 throws ArrayIndexOutOfBoundsException 2019-08-01 12:54:02 -04:00
Clebert Suconic 80190860cc ARTEMIS-2435 Configuration on device-block-size through CLI / broker.xml 2019-07-30 14:39:07 -04:00
Clebert Suconic 32a15284ca NO-JIRA no need to validate default return 2019-07-30 13:43:39 -04:00
Clebert Suconic aa5d76e1bb ARTEMIS-2414 AIOSequentialFile was ignoring sync and leaking files 2019-07-30 11:03:06 -04:00
Wei Yang edace8845e ARTEMIS-2414 Sync before closing file in case data loss 2019-07-29 14:44:26 -04:00
Clebert Suconic 28ea18ea79 ARTEMIS-2434 Improving Consumer/Queue Delivery Lock
This is a less invasive improvement then the one I proposed at PR #2772
or commit 7507a9fd4b
2019-07-27 11:37:45 -04:00
Clebert Suconic 8a1f267bd5 Revert "ARTEMIS-2423 Improving Consumer/Queue Delivery lock"
This reverts commit 7507a9fd4b.
2019-07-27 10:45:08 -04:00
Clebert Suconic 7507a9fd4b ARTEMIS-2423 Improving Consumer/Queue Delivery lock 2019-07-26 15:05:51 -04:00
Clebert Suconic d2d21516ba Revert "ARTEMIS-2434 Don't lock ServerConsumerImpl for long period of time"
This reverts commit 64ba930f43.
2019-07-26 13:57:05 -04:00
Francesco Nigro 64ba930f43 ARTEMIS-2434 Don't lock ServerConsumerImpl for long period of time 2019-07-26 13:00:57 -04:00
Wei Yang b92cde165b ARTEMIS-2430 Avoid data loss when live page cache evicted 2019-07-24 19:42:49 +08:00
Jiri Danek 52e7b9d57d ARTEMIS-2429 Fix order of arguments to registerQueueGauge and two related typos
Test is also adjusted to test for the changes made.
2019-07-22 13:28:22 +02:00
Clebert Suconic 2d7d714260 ARTEMIS-2428 Exposing timeout on configuration and changing it to 0 on the testsuite 2019-07-19 12:09:23 -04:00
Clebert Suconic 89cc07c7d8 ARTEMIS-2408 Changing FileDescriptors rule as classRule 2019-07-19 12:01:01 -04:00
Clebert Suconic 736045d73b ARTEMIS-2401 Improving tests and a few fixes around Address.pause 2019-07-18 16:29:52 -04:00
Emmanuel Hugonnet 3aa3fa777f ARTEMIS-2401 Implement the Pause method for an Address
Adding support to pause an Address and all its bound queues.

Jira: https://issues.apache.org/jira/browse/ARTEMIS-2401
2019-07-18 16:29:52 -04:00
Clebert Suconic 989b3a516e ARTEMIS-2408 A few tweaks on acceptor async stop 2019-07-18 16:23:19 -04:00
brusdev aeecb6f70b ARTEMIS-2408 Too many opened FDs after server stops
Limit acceptors stop time.

reapplying after commit 20ca827d79
2019-07-18 16:17:03 -04:00
yang wei 99158ccd3d ARTEMIS-2418 Race conditions between cursor movement and page writing 2019-07-18 10:30:26 -04:00
Clebert Suconic 20ca827d79 ARTEMIS-2408 Effectively reverting FileDescriptors to fix tests
At this commit point NetworkFailureFailoverTest would hung indefinetly
2019-07-16 20:54:42 -04:00
brusdev 29bbb94b5e ARTEMIS-2408 Too many opened FDs after server stops
Wait netty event loop group shutdown to avoid too many opened FDs after
server stops, when netty configuration is used. Clear server
activateCallbacks to avoid reactivation of previous nodeManager and
consequent FD leaks on restart. Fix LargeServerMessageImpl.copy to avoid
FD leaks when a large message expiry or it is sent to DLA. Terminate
HawtDispatcher global queue to avoid pipes and eventpolls leaks after a
MQTT test.

cherry-picking commit 9617058ba0649af4eea15ce8793f86de827c4b7f
NO-JIRA adding check for open FD on the testsuite

cherry-picking commit 0facb7ddf4d3baa14a3add4290684aff7fd46053
NO-JIRA addressing connections leaks on integration tests
2019-07-16 13:36:42 -04:00
yang wei 85b93f0883 ARTEMIS-2336 Use zero copy to replicate journal/page/large message file 2019-07-15 23:51:42 +01:00
Dmitry Volodin dbb3a90fe6 ARTEMIS-2322: Expose Queue.getRate() data as JMX metric 2019-07-15 16:34:31 -04:00
yang wei fa46647818 ARTEMIS-2425 Message loss due to writing incomplete page file 2019-07-12 19:52:43 +08:00
Howard Gao c66d62e4b0 ARTEMIS-2390 JMSMessageID header can be null when messages are cross-protocol
If a jms client (be it openwire, amqp, or core jms) receives a message that
is from a different protocol, the JMSMessageID maybe null when the
jms client expects it.
2019-06-27 10:26:34 -04:00
Shailendra Kumar Singh a98d995783 ARTEMIS-2387 add scheduled-count and routing-type to queue stat CLI 2019-06-25 14:02:18 -05:00
Justin Bertram 886ae7bfc5 ARTEMIS-2395 empty address.txt causes NPE 2019-06-21 15:09:08 -04:00
Justin Bertram 3b82cad024 ARTEMIS-2391 static address may be auto-deleted 2019-06-21 15:01:36 -04:00
Andy 61a563ee95 ARTEMIS-2358 - fixing issue with last commit
https://issues.apache.org/jira/browse/ARTEMIS-2358
2019-06-20 10:21:02 +01:00
brusdev 9d12ad6501 ARTEMIS-2385 Log header for rejecting message with too large header
Use warning level to add in the log the ID and debug level to add in the
log the message header of rejecting message with too large header.
2019-06-19 11:26:33 -05:00
Andy e82d95fff6 ARTEMIS-2338 - Live server does not shutdown when using vote-on-replication-failure
https://issues.apache.org/jira/browse/ARTEMIS-2338
2019-06-19 10:26:10 -05:00
Justin Bertram 3c5453d401 ARTEMIS-2384 log underlying bridge failure at DEBUG 2019-06-17 22:29:57 -04:00
Justin Bertram 3ff75c3353 ARTEMIS-1982 queue metrics can go negative
When redelivery is exhausted and messages are sent to a DLA with bindings
then some queue metrics can go negative.
2019-06-12 17:22:30 -04:00
Clebert Suconic 7e3b68a4cf ARTEMIS-2367 Adding rule to avoid files leaking on the main folder
We had to fix a few cases where data folder was being created outside of the ./target output.
This is just to avoid re-ocurrence of that.
2019-06-12 12:10:28 -04:00
Andy 959d25f0e6 ARTEMIS-2377 - add password encryption to security plugins
https://issues.apache.org/jira/browse/ARTEMIS-2377
2019-06-11 19:16:33 +01:00
brusdev 9b52547ff7 ARTEMIS-2371 Message with huge header shuts broker down
Add max record size check before adding a record to prevent that the
broker shuts down, when there is one really large header sent with the
message. Add message size check before allocating large message resource
if it can't be stored.
2019-06-10 17:36:18 -04:00
Francesco Nigro bfe6b70c5a ARTEMIS-2374 JournalStorageManager::addBytesToLargeMessage leaks ByteBuffer 2019-06-10 15:52:58 +02:00
Tomas Hofman 097ef281fd ARTEMIS-2069 Backup doesn't activate after shared store is reconnected 2019-06-10 13:36:43 +02:00
Justin Bertram bde1b1cc4e ARTEMIS-2367 fix directories for tests 2019-06-03 13:22:06 -05:00
Clebert Suconic b7047faea5 NO-JIRA Adding checking for leaking server socket 2019-05-31 19:06:15 -04:00
brusdev ef2ec7b56e ARTEMIS-1011 Slow consumer detection after bursts
Fix slow consumer detection after a burst, taking into account messages
which are already in queue at the start of queueRateCheckTime period.
2019-05-31 12:21:28 -04:00
Justin Bertram dbb2b54fa7 [maven-release-plugin] prepare for next development iteration 2019-05-29 22:02:00 -05:00
Justin Bertram 88c686cc99 [maven-release-plugin] prepare release 2.9.0 2019-05-29 21:59:18 -05:00
Clebert Suconic 4fa2e75cdc ARTEMIS-2361 Bridge should make a copy of messages
and some improvements into ARTEMIS-2355
2019-05-29 16:35:01 -04:00
Francesco Nigro 0d273d2bb8 ARTEMIS-2347 JournalStorageManager::stopReplication can deadlock while stopping
AbstractJournalStorageManager::performCachedLargeMessageDeletes
must enforce acquisition of manager write lock (as documented)
to avoid unlucky racing calls of stopReplication while stopping
to deadlock.
2019-05-29 15:09:25 -04:00
Justin Bertram 5768f6e2f3 ARTEMIS-2308 Support exporting metrics 2019-05-29 15:07:45 -04:00
Andy 3fe2194139 ARTEMIS-2358 - Add user and pass to database store to allow encryption
https://issues.apache.org/jira/browse/ARTEMIS-2358
2019-05-29 11:30:35 -05:00
Andy 959c38bd8d ARTEMIS-2352 - Add the ability to reject messages without a validated user set
https://issues.apache.org/jira/browse/ARTEMIS-2352
2019-05-29 09:42:38 -04:00
Andy ca80662fd0 ARTEMIS-2346 - make timestamp human readable in console
https://issues.apache.org/jira/browse/ARTEMIS-2346
2019-05-21 15:24:51 -04:00
James Perkins 4fffc02778 ARTEMIS-2342 Use a URL instead of a URI for the logging.configuration property
The property the log manager itself expects is a URL which could result in an invalid URI missing the // prefix after file:.
2019-05-16 18:43:19 -04:00
Clebert Suconic 2ae732cfc8 [maven-release-plugin] prepare for next development iteration 2019-05-16 09:58:27 -04:00
Clebert Suconic 481b9824a8 [maven-release-plugin] prepare release 2.8.1 2019-05-16 09:58:15 -04:00
Clebert Suconic ce92cc827e NO-JIRA FileConfigurationParserTest creating data folder
FileConfigurationParserTest was creating a data folder.
This is simply disabling persistence from the configuration used by the server on this test as it is not needed.
2019-05-16 08:57:30 -04:00
Clebert Suconic b9b6fddeea ARTEMIS-2339 Compatibility around prefixing
There are a few issues with prefixing and compatibility.
This is basically an issue when integrated with Wildfly or any other case
where prefix is activated
and playing with older versions.
2019-05-15 17:49:03 -04:00
Justin Bertram 984a901d6a ARTEMIS-2334 avoid potential NPE 2019-05-14 10:16:10 -05:00
Francesco Nigro f2bac5ad08 ARTEMIS-2321 Non-blocking Page::read on page cache 2019-05-13 12:20:22 -04:00
Francesco Nigro 49836eca52 ARTEMIS-2321 PageCursorProviderImpl can use primitive maps 2019-05-13 10:24:17 -04:00
Francesco Nigro 30c82f43b0 ARTEMIS-2321 PageCursorInfo caches number of msgs to save Page::read 2019-05-13 10:24:17 -04:00
Francesco Nigro b173bb5552 ARTEMIS-2321 Removed unnecessary volatile/Atomic operations and fields 2019-05-13 10:24:17 -04:00
Francesco Nigro 82898a8a3c ARTEMIS-2321 PageCache doesn't need a Page reference 2019-05-13 10:24:17 -04:00
Francesco Nigro 79465f7f88 ARTEMIS-2317 Reuse file buffer wrapper instances to reduce allocations
Page::read is allocating a new ChannelBufferWrapper on each
paged message read: to reduce the allocation rate, it could be
reused until a new wrapped ByteBuffer is created
2019-05-13 09:47:25 -04:00
Clebert Suconic fc760265a2 ARTEMIS-2335 Fixing delivery logic for message group on negative attemps
OpenWireGroupingTest::testGrouping is fixed after this change as it was intermittently failing
2019-05-10 11:49:34 -04:00
Clebert Suconic 408cd3745c ARTEMIS-2333 Applying proper fix on Stomp delivery
When connection is dead, the StompSession may deliver a message and if AUTO-ACK it would ack and lose the message
2019-05-08 18:16:23 -04:00
Justin Bertram 8257bac49b ARTEMIS-2332 fix sendMessage w/headers from console 2019-05-08 07:21:22 -04:00
Clebert Suconic 0e40984145 NO-JIRA speeding up a few tests 2019-05-06 20:22:47 -04:00
Clebert Suconic 5d155f585e NO-JIRA removing System.out left by accident 2019-05-06 08:56:45 -04:00
Clebert Suconic b5b2cc98b0 NO-JIRA Fixing JMX Test
This test has been failing as part of the main testsuite
and it should really be a smoke test as it is using a real test.
so, I'm moving it as smoke-test
2019-05-03 18:05:26 -04:00
Clebert Suconic 56152a9e7c [maven-release-plugin] prepare for next development iteration 2019-05-02 16:39:10 -04:00
Clebert Suconic a8e7f9d07a [maven-release-plugin] prepare release 2.8.0 2019-05-02 16:38:58 -04:00
Clebert Suconic 9ec9e0785b ARTEMIS-2329 AddressSettings inconsistence on decoding
This is fixing these tests:
- org.apache.activemq.artemis.tests.integration.paging.PagingOrderTest#testPagingOverCreatedDestinationQueues
- org.apache.activemq.artemis.tests.integration.paging.PagingOrderTest#testPagingOverCreatedDestinationTopics

No additional tests are needed as this change is covereted by the current testsuite
2019-05-02 11:48:14 -04:00
Clebert Suconic fa259ba66e ARTEMIS-2328 Routing after empty addresses could lead to invalid messages 2019-05-01 01:34:28 -04:00
Justin Bertram f584efd574 ARTEMIS-2326 remove pwd params before creating protocol mgr 2019-04-29 20:53:15 -04:00
Clebert Suconic f664713757 NO-JIRA typo on logger 2019-04-29 20:50:32 -04:00
Jiri Danek 4abc2e0430 ARTEMIS-2320 Synchronization on a non-final field 2019-04-29 11:28:10 +01:00
Jiri Danek 781e4c460d ARTEMIS-2320 'while' statement does not loop 2019-04-29 11:28:10 +01:00
Jiri Danek 34e5d607ef ARTEMIS-2320 'compare()' method can be used to compare numbers 2019-04-29 11:27:29 +01:00
Jiri Danek d076d1ca59 ARTEMIS-2320 Fix BadComparable errorprone warning
Possible sign flip from narrowing conversion
    (see https://errorprone.info/bugpattern/BadComparable)
2019-04-29 11:27:29 +01:00
Jiri Danek f7a36300ef ARTEMIS-2320 Fix IntLongMath errorprone warning
Expression of type int may overflow before being assigned to a long
    (see https://errorprone.info/bugpattern/IntLongMath)
2019-04-29 11:27:29 +01:00
Clebert Suconic 00a6b933bb ARTEMIS-2324 Fixing possible race on DuplciateDetection
This is fixing AmqpSenderTest.testDuplicateDetection
2019-04-26 19:03:34 -04:00
Clebert Suconic 228f6af4ca [maven-release-plugin] prepare for next development iteration 2019-04-25 16:52:09 -04:00
Clebert Suconic 09d2ba18a7 [maven-release-plugin] prepare release 2.8.0 2019-04-25 16:51:57 -04:00
Francesco Nigro 881143252c ARTEMIS-2317 Avoid long TTSP caused by Page::read using mmap read
It implements Page::read using chunked reading of SequentialFile
instead of using memory mapped files causing long time to safepoint
issues.
2019-04-25 15:43:01 -04:00
Clebert Suconic 9ac7702c93 ARTEMIS-2318 Removing debug message left by accident 2019-04-25 11:18:35 -04:00
Clebert Suconic 0a229d0786 ARTEMIS-2310 Checkstyle fix 2019-04-25 11:14:52 -04:00
Justin Bertram 73bdbad8b4 ARTEMIS-2310 support system prop sub in xincludes
Historically the broker has read the XML configuration file as a String,
substituted system properties, and then parsed that String into an XML
document. However, this method won't substitute system properties in the
files which are imported via xinclude. In order to substitue system
properties in xincluded files the substitution needs to be performed
after the file is parsed into an XML document. This commit implements
that change and refactors the XMLUtil class a bit to eliminate redundant
code, obsolete comments, etc.
2019-04-25 10:51:12 -04:00
Clebert Suconic 15a335df01 ARTEMIS-2318 HornetQ Protocol Manager should copy the messages before replacing message properties 2019-04-24 16:27:32 -04:00
Clebert Suconic 45121eade2 ARTEMIS-2306 Fixing Test and possible NPE 2019-04-22 21:44:14 -04:00
Justin Bertram 7cc890ae6f ARTEMIS-2307 prefix not removed for security check 2019-04-22 16:58:11 -04:00
Clebert Suconic 33d6721ffc ARTEMIS-2314 Improving Test and compatibility check on FQQN 2019-04-22 16:34:15 -04:00
Justin Bertram a2cb44400f ARTEMIS-2314 broken compat with old core JMS FQQN consumer
When auto-creation is off then older clients consuming messages from an
FQQN won't work. This commit fixes that problem and adds a compatibility
test to verify.
2019-04-22 11:04:01 -05:00
Justin Bertram f155838626 ARTEMIS-2313 Accumulation in HierarchicalObjectRepository cache 2019-04-22 10:48:47 -04:00
Michael André Pearce 18bcd21c3e ARTEMIS-2306 Make group first off by default, unless configured 2019-04-17 16:25:42 -04:00
Justin Bertram e0a7073884 ARTEMIS-2309 TempQueueCleanerUpper instances are leaking
The changes from ARTEMIS-2189 mean that
o.a.a.a.c.s.i.ServerSessionImpl#deleteQueue
is no longer called from the same ServerSessionImpl instance that
created it which means that TempQueueCleanerUpper instances will leak.
To resolve the leak the client will only create a new session when
necessary instead of every time delete() is invoked.
2019-04-17 10:41:30 -04:00
Clebert Suconic 7158d8a8a4 ARTEMIS-1592 AutoDeleted queues removed before sendNotifcation on consumer.close()
This could cause errors on Notification udpates and clustering.
2019-04-16 16:59:37 -04:00
Michael André Pearce 98b3177e6e ARTEMIS-2306 Make key used for group first for consumer configurable
Add tests
Add implementation details
2019-04-16 15:43:16 -04:00
Michael André Pearce 05628ce92e ARTEMIS-2306 Support ActiveMQ5 feature JMSXGroupFirstForConsumer
Implement using the ActiveMQ5 JMSXGroupFirstForConsumer, property as default, but make it possible for future to make it configurable easily. (Not this PR)
Add test
2019-04-16 15:43:16 -04:00
Michael André Pearce ed9270fc79 NO-JIRA Fix small ActiveMQServerControl api break with 2.6.4
In adding auto-delete queue level feature, its been noticed as some feature bits were added during hot fix branch, that there's api break with the 2.6.x hotfix branch.

This addresses that by fixing this in 2.7.x
2019-04-16 14:30:33 +01:00
sebthom 11b0de96b9 ARTEMIS-2285 Sorting by user column in connections view not working 2019-04-15 16:46:43 +01:00
Clebert Suconic da4f95cf71 ARTEMIS-2305 ACK counters to only increment after commit
Also including a new metric for ack attempts that will keep the former semantic.
2019-04-12 14:34:51 -04:00
Clebert Suconic cf2540ebb1 ARTEMIS-2301 Minor change on Epoll and kQueue.isAvailable
just checking for NoClassDefFound and return false
2019-04-11 18:06:50 -04:00
Clebert Suconic b8b7cc899f ARTEMIS-2300 Expiry notifications are not called from scanner 2019-04-10 16:01:18 -04:00
Clebert Suconic 9e45a4ac3a ARTEMIS-2299 Support for redelivery-delay and LVQ 2019-04-10 15:10:05 -04:00
Clebert Suconic 720f60ace2 ARTEMIS-2297 Avoiding Split Brains during replication catch up when no quorum is established 2019-04-10 07:52:08 -04:00
Clebert Suconic 655c772c20 ARTEMIS-2295 fix IBM JDK schema parsing 2019-04-05 16:19:20 -04:00
Clebert Suconic 821f291125 ARTEMIS-2292 Fix default on XSD for auto-delete-created-queues 2019-04-03 11:38:55 -04:00
Michael André Pearce 369c429d8a ARTEMIS-2292 - Fix queue level auto-delete for topic subscription queue
Adjust auto-delete defaults based on if queue autocreated
2019-04-02 19:06:08 +01:00
Michael André Pearce 0df9205aca ARTEMIS-2292 - Fix queue level auto-delete for topic subscription queue
Additional bits missed
2019-04-02 16:28:47 +01:00
Howard Gao 375f383e90 NO-JIRA Avoid NPE during backup shutdown
When a backup starts without a live, it's nodeID is null.
Added a null check in ClusterConnection's stop() to avoid
NPE if it's shut down.
2019-04-02 11:21:14 -04:00
Justin Bertram d2dc04c712 ARTEMIS-2288 add remote IP to handshake timeout error 2019-04-02 11:10:11 -04:00
Michael André Pearce c4fce10fac ARTEMIS-2292 - Fix queue level auto-delete for topic subscription queue 2019-04-02 10:24:27 -04:00
Francesco Nigro ac4cd4856c ARTEMIS-2283 Bad WARN message "AMQ222211: Storage is back to stable now"
LocalMonitor::under on PagingManagerImpl won't log anymore with a
warning message if the producers got unblocked and with info
if disk it getting freed
2019-04-01 09:47:42 -05:00
Francesco Nigro 0263d45a35 ARTEMIS-2282 QueueImpl::addTail of a management message could throw NPE
Performing direct deliveries of management messages could enter
a code path on QueueImpl::addTail with a NULL pageIterator: performing
a null check will avoid it to throw NPE.
2019-03-27 17:02:06 +00:00
Clebert Suconic 516b1a1b9f [maven-release-plugin] prepare for next development iteration 2019-03-14 12:41:04 -04:00
Clebert Suconic c3eb6c12ad [maven-release-plugin] prepare release 2.7.0 2019-03-14 12:40:52 -04:00
Howard Gao fb549ebe44 ARTEMIS-2273 Adding Audit Log
The Audit log allows user to log some important actions,
such as ones performed via management APIs or clients,
like queue management, sending messages, etc.
The log tries to record who (the user if any) doing what
(like deleting a queue) with arguments (if any) and timestamps.

By default the audit log is disabled. Through configuration can
be easily turned on.
2019-03-14 12:24:59 -04:00
Clebert Suconic 828a4856da ARTEMIS-2274 Fix on Journal buffer overflow with almost large messages 2019-03-13 14:56:46 -04:00
Clebert Suconic 3473618a06 NO-JIRA fixing another test
test failing: org.apache.activemq.artemis.tests.integration.management.AddressControlTest.testSendMessage
2019-03-12 20:21:20 -04:00
Francesco Nigro 39fd58f719 ARTEMIS-2258 The FileLockNodeManager directory should be configurable 2019-03-12 16:15:24 -04:00
onlyMIT 4484d05cf0 ARTEMIS-2226 last consumer connection should close the previous consumer connection
Multiple consumers using the same clientId in the cluster, the last consumer connection should close the previous consumer connection!

ARTEMIS-2226 last consumer connection should close the previous consumer connection

to address apache-rat-plugin:0.12:check

ARTEMIS-2226 last consumer connection should close the previous consumer connection

to address checkstyle

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

add javadoc
2019-03-12 19:57:31 +00:00
Michael André Pearce fafbd7e2e5 ARTEMIS-1604 Artemis deadlock using MQTT Protocol
Address code review comment not address when PR was merged.
2019-03-12 19:53:07 +00:00
Erik Östlund a760b8bb30 NO-JIRA Added Javadoc reference to the documentation 2019-03-12 14:53:37 -04:00
Francesco Nigro 5b2c47567d ARTEMIS-1604 Artemis deadlock using MQTT Protocol
MQTT shouldn't support direct deliveries
2019-03-12 12:36:25 -04:00
Clebert Suconic 0872f749a9 ARTEMIS-1604 Using default supportDirectDelivery=false
This is to avoid races setting it to false on protocols that won't support direct Deliver
2019-03-11 14:40:42 +01:00
Francesco Nigro c83fce8db4 ARTEMIS-1604 Artemis deadlock using MQTT Protocol
Direct and async deliveries lock QueueImpl::this and
ServerConsumerImpl::this in different order causing deadlock:
has been introduced a deliverLock to prevent both type of delivers
to concurrently happen, making irrelevant the lock ordering.
2019-03-11 14:35:39 +01:00
Keith Wall 95bcfaeb70 ARTEMIS-2262: Correlate management response messages with the request 2019-03-08 12:11:58 -05:00
Michael André Pearce 4a5af776d8 ARTEMIS-2265 Support Federated Queues and Addresses
Implement Federated Queue (builds on recent consumer priority)
Implement Federated Address (builds on recent queue level auto-delete)
Add Functional Tests
Add Failure Tests (remote and local shutdowns)
Add Documentation
2019-03-07 14:37:00 -05:00
Clebert Suconic 061fb2787e ARTEMIS-1977 Stripping activemq-artemis as a separated proejct 2019-03-07 11:34:15 -05:00
Francesco Nigro 4ea9d25ca9 ARTEMIS-2264 PurgeOnNoConsumers prevent removal of messages with replication
Added test reproducer and changed Queue::isDurableMessage usages into
Queue::isDurable to allow acks to hit the journal and being
correctly replicated across nodes.
2019-03-05 15:16:36 -05:00
Michael André Pearce 9b01e9521c ARTEMIS-2263 Support queue level auto-delete configuration
Add ability to configure when creating auto created queues at the queue level
Add support for configuring message count check
Add test cases
Update docs
2019-02-27 08:13:19 +00:00
Clebert Suconic da3d7a2940 ARTEMIS-2243 Fixing ClassLoding and dependency to security domain on method parameter 2019-02-25 20:12:20 -05:00
Clebert Suconic 9f6f36d041 ARTEMIS-2183 Fixing RefsOperation on consumers and adding test 2019-02-25 17:23:47 -05:00
Otavio R. Piske a1d10c02f9 ARTEMIS-2183 Useless statement in public synchronized List
Ensures that the returned list returns the refsToAck list instead of
trying to add all items of itself

This closes 2566
2019-02-25 17:23:34 -05:00
Michael André Pearce c4e68b6046 ARTEMIS-2118 Enhanced Message Groups Support
Support using group buckets on a queue for better local group scaling
Support disabling message groups on a queue
Support rebalancing groups when a consumer is added.
2019-02-21 19:58:34 -05:00
Clebert Suconic 285848969f ARTEMIS-2251 Using Callbacks to delete large messages from IO
This closes #2549
2019-02-20 17:04:37 -05:00
Clebert Suconic d59bdca73f ARTEMIS-2256 Update Topology back after a bridge reconnected
https://issues.apache.org/jira/browse/ARTEMIS-2256
2019-02-19 16:10:40 -05:00
Jiri Danek 99e39f5f1c NO-JIRA Fix a "Inefficient Map Iterator" SpotBugs warning
https://spotbugs.readthedocs.io/en/stable/bugDescriptions.html#wmi-inefficient-use-of-keyset-iterator-instead-of-entryset-iterator-wmi-wrong-map-iterator
2019-02-19 14:46:58 -05:00
Clebert Suconic 8edca409f6 ARTEMIS-2246 Fixing testsuite 2019-02-08 18:42:02 -05:00
Michael André Pearce efa48c9782 ARTEMIS-2081 listConfiguredQueues returns only queues created by config
Move configuration managed in persister before consumer dispatch so then the fix can be applied in 2.6.x branch safely.
2019-02-07 15:20:04 -06:00
Justin Bertram a38cdfa811 ARTEMIS-2246 clarify docs for defaults; change max-disk-usage default 2019-02-07 11:13:04 -05:00
Justin Bertram 4a1fc61fcc ARTEMIS-2243 user/role ops for PropertiesLoginModule via mgmnt 2019-02-07 10:16:01 -05:00
Clebert Suconic e09ffe14f4 ARTEMIS-2244 Adding critical check around checkDepage 2019-02-05 15:15:10 -05:00
yb 8799615a13 ARTEMIS-2244 checkDepage method placed outside CRITICAL_DELIVER avoid critical analyzer timeout 2019-02-05 15:04:09 -05:00
Clebert Suconic c0edb88747 ARTEMIS-2205 Fixing Divert Example
This is simply fixing the example under examples/features/standard/divert
Other tests are passing.
No additional tests are needed as the example on this case acts like a test.
2019-01-30 15:38:36 -05:00
Michael André Pearce b76f0061f8 ARTEMIS-2241 Support direct deliver for InVMAcceptors
Push isDirectDeliver method from netty impl, to the Connection interface
Add support to InVMConnection for isDirectDeliver flag and ability to set via config, defaulting to false, to keep current default behavior. 
Extend DirectDeliverTest to check InVM as well.
2019-01-30 08:11:46 +00:00
Justin Bertram 4d2eae2686 NO-JIRA add logging to LegacyLDAPSecuritySettingPlugin 2019-01-29 23:09:20 -05:00
Justin Bertram 693ea722f5 ARTEMIS-2192 fix listener for LegacyLDAPSecuritySettingPlugin 2019-01-24 14:34:27 -05:00
Michael André Pearce cf65912bcc ARTEMIS-2170 Optimized CoreMessage clearInternalProperties
Ensure only iterate properties, if internal property is set.
2019-01-24 08:31:10 +00:00
Francesco Nigro 6446d01a15 ARTEMIS-2170 Optimized CoreMessage check and cleanup methods
Any checkProperties();<usage of this.properties> pattern has been
replaced by an atomic checkProperties().<usage of returned properties>
to help both performance and consistency.
The cleanup is now performed into CoreTypedProperties both
for performance reasons (avoid lock/unlock many times)
and consistency, given that the operation is now atomic.
2019-01-24 08:31:10 +00:00
Howard Gao 90ca87c5e1 ARTEMIS-2088 - Page.write() should throw exception if file is closed
In Page.write(final PagedMessage message) if the page file is closed
it returns silently. The caller has no way to know that if the message
is paged to file or not. It should throw an exception so that the
caller can handle it correctly.

This causes random failure PagingTest#testExpireLargeMessageOnPaging().
The test shows that when the server stops it closes the page file.
In the mean time a message is expired to the expiry queue and if
the expiry queue is in paging mode, it goes to Page.write() and
returns without any error. The result is that the message is removed
from the original queue and not added to the expiry queue.

If we throw exception here it makes the expiration failed, the message
will not be removed from the orginal queue. Next time broker is started,
the message will be reloaded and expired again. no message lost.
2019-01-23 21:25:58 -05:00
Clebert Suconic 3ac96491ec NO-JIRA Update year to 2019 2019-01-23 21:06:09 -05:00
Clebert Suconic 5a19c54f9f ARTEMIS-196 Removing dead variables
Fixing build after removing variable used by FieldUpdater
2019-01-23 13:31:31 -05:00
Justin Bertram 8d7d78074c ARTEMIS-2192 LegacyLDAPSecuritySettingPlugin uses hard-coded RDN types
Change the LegacyLDAPSecuritySettingPlugin to interpret the search
results based on the order of the returned RDNs rather than hard-coded
types.
2019-01-23 11:52:32 -05:00
Clebert Suconic f225a4e166 ARTEMIS-196 Removing dead variables
This is really a NO-JIRA
however it was done in the context of merging ARTEMIS-196
2019-01-23 11:25:15 -05:00
Michael André Pearce 7dfa0fe7f4 ARTEMIS-196 Implement Consumer Priority
Add consumer priority support
Includes refactor of consumer iterating in QueueImpl to its own logical class, to be able to implement.
Add OpenWire JMS Test - taken from ActiveMQ5
Add Core JMS Test
Add AMQP Test
Add Docs
2019-01-23 11:19:24 -05:00
Luis De Bello d78eeb05cd ARTEMIS-2156 Message Duplication when using exclusive divert and clustering 2019-01-23 10:17:03 -05:00
Emmanuel Hugonnet 8b272bd1c8 ARTEMIS-2234 fix warning from LoggingConfigurationFileReloader
return the LogContextConfiguration if we have one
2019-01-21 14:19:09 -06:00
Michael André Pearce 55732d401f NO-JIRA Fix Possible NPE in connectToNodeInReplicatedCluster
Variable possibleLive may be null, as signified by trace log above, also dedupe code.
2019-01-21 13:26:24 +08:00
yang wei 3954f0183f ARTEMIS-2186 Large message incomplete when server is crashed 2019-01-19 08:16:09 +00:00
Justin Bertram 61e0354b1a ARTEMIS-1867 FQQN for producers
There's a *slight* semantic change with the behavior of the queue query
and binding query to make them consistent with the address query, namely
that they will return the name of the queue and the name of the address
in every case and the returned names will be not use the FQQN syntax but
will be parsed to reflect their actual names in the broker.
2019-01-18 09:03:30 +00:00
Justin Bertram 03c45d6479 NO-JIRA de-duplicate createQueue()
There were two different but nearly identical implementations of
createQueue(). I consolidated these into a single method. There should
be no semantic differences.
2019-01-18 09:03:29 +00:00
Michael André Pearce f49d3e89dc NO-JIRA Fix possible IOE
id must be less than values.length,  values[id] array access might be out of bounds, as the index might be equal to the array length.
2019-01-18 08:20:14 +00:00
Michael André Pearce dac2ae6636 ARTEMIS-2221 Fix Merge 2019-01-17 23:50:09 +00:00
yang wei 5ea72022a1 ARTEMIS-2187 remove page from softcache before consumedpage 2019-01-17 18:12:57 -05:00
yang wei 52d236d850 ARTEMIS-2188 fix address size leak caused by large page message 2019-01-17 17:51:51 -05:00
Justin Bertram 6c0f9f8d3d ARTEMIS-2221 avoid unnecessary Bindings instance creation
When trying to get the bindings for an address the getBindingsForAddress
method will create a Bindings instance if there are no bindings for the
address. This is unnecessary in most circumstances so use the
lookupBindingsForAddress method instead and check for null.
2019-01-17 22:49:35 +00:00
Justin Bertram bfefd1f1ed NO-JIRA fix lgtm.com errors
Errors enumerated at
https://lgtm.com/projects/g/apache/activemq-artemis/alerts/?mode=tree&severity=error
2019-01-17 22:37:01 +00:00
Justin Bertram 57aacf784c NO-JIRA fix lgtm.com warnings
Warnings enumerated at
https://lgtm.com/projects/g/apache/activemq-artemis/alerts/?mode=tree&severity=warning
2019-01-17 22:30:28 +00:00
Justin Bertram 47aa25933f ARTEMIS-2178 routing-type config for core bridge
MULTICAST messages forwarded by a core bridge will not be routed to any
ANYCAST queues and vice-versa. Diverts have the ability to configure how
routing-type is treated. Core bridges now support this same kind of
functionality. By default the bridge does not alter the routing-type of
forwarded messages to maintain compatibility with existing behavior.
2019-01-17 22:22:01 +00:00
Francesco Nigro 702f445205 ARTEMIS-2200 NPE while dropping/failing large messages on paging
Large messages pendingRecordID is not accessed atomically, leading
to races that would lead to records that cannot been found on the
journal for deletion: it would lead to cause NPE that won't clean
the pending tasks on the current OperationContextImpl.
Adding a cleanup on error of those tasks and avoiding the race
to happen by adding proper synchronization will both enforce
correct clean up when something bad happen and avoid NPE.
2019-01-17 14:35:25 -05:00
Emmanuel Hugonnet a2c4f7c0a3 [ARTEMIS-1536]: Incorrect Journal filesize calculation where specified size is lest that the block size when using AIO.
* If the specified file size is under the fs block size then the
resulting file size is 0. Setting it to the block size in this case.

Jira: https://issues.apache.org/jira/browse/ARTEMIS-1536
2019-01-17 10:37:37 -05:00
Howard Gao 70f8297cfa ARTEMIS-2210 PagingStore creation is not properly synchronized
In PagingManagerImpl#getPageStore() the operations on the map 'stores'
are not synchronzed and it's possible that more than one paging store is
created for one address.
2019-01-17 10:30:20 -05:00
Francesco Nigro 11214f0ca9 ARTEMIS-2212 Avoid using CLQ on ServerConsumerImpl
It would deliver a better performance for the most
common operations eg offer, poll, iterations, size.
2019-01-17 10:25:51 -05:00
Qihong Xu 9f4ac4cb9f ARTEMIS-2214 Cache durable&deliveryTime in PagedReference 2019-01-16 16:35:11 -05:00
Clebert Suconic ae1ccf034a ARTEMIS-2228 Large Messages over Management 2019-01-15 12:31:26 -05:00
Francesco Nigro 47db4714fc ARTEMIS-2216 Avoid unnecessary page cache queries on ack TX
PageSubscriptionImpl::ackTx is already performing a counter update
using the message persistent size: the size can be reused on
PagePosition::setPersistentSize, avoiding to query the page cache just
to compute it.
2019-01-14 11:40:41 -05:00
Francesco Nigro e541126ca6 ARTEMIS-2224 lock-free LivePageCache + tests
LivePageCacheImpl has been reimplemented to be
lock-free, multi-producer and multi-consumer
in any of its operations.
2019-01-14 11:40:41 -05:00
Clebert Suconic 4bcad4bf47 ARTEMIS-2224 Javadoc changes after the paging lock changes 2019-01-14 11:39:37 -05:00
Qihong Xu e6fe9f9d92 ARTEMIS-2216 Use a specific executor for pageSyncTimer 2019-01-14 11:39:37 -05:00
Francesco Nigro 8281e3b58f ARTEMIS-2205 Optimizing some Lambda usages
https://issues.apache.org/jira/browse/ARTEMIS-2205
2019-01-10 16:39:56 +01:00
Clebert Suconic d79762fa04 ARTEMIS-2205 Refactor AMQP Processing into Netty Thread
These improvements were also part of this task:
- Routing is now cached as much as possible.
- A new Runnable is avoided for each individual message,
  since we use the Netty executor to perform delivery

https://issues.apache.org/jira/browse/ARTEMIS-2205
2019-01-10 16:39:56 +01:00
yb 0a47e1bc6f ARTEMIS-2215 largemessage have been consumed but not deleted from the disk during backup and live sync 2019-01-09 17:25:02 -05:00
yb 8acdbc6237 ARTEMIS-2222 removing unecessary check for positioning on page 2019-01-09 16:31:05 -05:00
Clebert Suconic 40966c769a ARTEMIS-2207 Page Showing Log.warns for regular acked messages 2018-12-18 19:07:42 -06:00
JiriOndrusek 3c3c81720a [ARTEMIS-2050] It is possible to get AMQ224000: Failure in initialisation: java.lang.NullPointerException during shutdown of backup server with shared store 2018-12-14 18:04:07 -06:00
Francesco Nigro 1c0ef5d7f7 ARTEMIS-2196 Avoid creating RandomAccessFile when FileChannel is needed 2018-12-14 15:10:30 -06:00
Francesco Nigro 2716a7be88 ARTEMIS-2198 Reduce GC pressure on TransactionImpl and OperationContextImpl
TransactionImpl::properties are often not used and could be
avoided to be allocated.
OperationContextImpl.TaskHolders instances are turned into static
classes to avoid refecencing back the context, making the life
easier for the GC.
OperationContexImpl volatile loads can be reduced to make the
code faster on the hot path.
2018-12-14 15:04:05 -06:00
andytaylor 80058677d9 ARTEMIS-2130 - This is to allow views to have the client id when set on core protocol
https://issues.apache.org/jira/browse/ARTEMIS-2130
2018-12-14 09:28:48 -05:00
feuillemorte a3001fd9bd ARTEMIS-2201 Added tests on DEFAULT_JOURNAL_FILE_OPEN_TIMEOUT value 2018-12-14 11:32:13 +01:00