Commit Graph

1571 Commits

Author SHA1 Message Date
Christopher L. Shannon d1558f172b
This closes #2958 2020-01-30 15:54:13 -05:00
Christopher L. Shannon 7ad2d0f71a
This closes #2959 2020-01-30 15:53:12 -05:00
Sebastian Thomschke 0250f84921
NO-JIRA Fix Javadoc warning in ActiveMQTestBase
Fixes Javadoc warnings "Javadoc: Exception Exception is not declared" and "Javadoc: Exception InterruptedException is not declared"
2020-01-29 17:34:08 +01:00
Sebastian Thomschke c117976e3a
NO-JIRA Fix Javadoc @link syntax in ActiveMQServerConsumerPlugin
Fixes Javadoc warning "Javadoc: Missing closing brace for inline tag"
2020-01-29 17:21:53 +01:00
Sebastian Thomschke a3aa669827
NO-JIRA Fix compiler warning in FileConfigurationParserTest
Fixes compiler warning "Unnecessary cast from String to String".
2020-01-29 17:15:53 +01:00
Wei Yang 1d1f0625db ARTEMIS-2544 Remove rolledback PageTransactionInfo to free up memory 2020-01-23 11:23:14 +08:00
Sebastian Thomschke cf26103bb2 ARTEMIS-2571 Remove synchronization of ActiveMQServerImpl#getSessions() 2020-01-22 15:32:55 -06:00
Francesco Nigro c3e74e055c ARTEMIS-2599 DescribeJournal isn't correctly counting surviving msg 2020-01-21 12:14:02 -05:00
Francesco Nigro fa0c187ae6 ARTEMIS-2602 Reduce number of copies for non JDBC Journal 2020-01-18 18:45:12 +01:00
Francesco Nigro b10d765139 ARTEMIS-2602 load surviving records into SparseArrayLinkedList 2020-01-17 14:31:52 -05:00
Clebert Suconic 1a6c4e5c62 ARTEMIS-2603 Deadlock between pageStore.getCurrentID and page.cleanup
This happened when JournalStorageManager.startReplication and PageStore.cleanup were called between multiple threads.
2020-01-17 11:39:30 -05:00
Clebert Suconic bbe9f9adce NO-JIRA Adding test name into temporary folder name directory
This is to make it possible to identify what test is leaking files whenever that is happening.
That is because future tests will report the leaks, and it's difficult to identify where it happened.

Also i'm changing NoProcessFilesBehind to show the getOpenFD propertly
2020-01-13 09:39:51 -05:00
Justin Bertram 97735ca72c [maven-release-plugin] prepare for next development iteration 2020-01-10 09:00:58 -06:00
Justin Bertram 25a947f6cb [maven-release-plugin] prepare release 2.11.0 2020-01-10 08:57:46 -06:00
Clebert Suconic e397a17796 ARTEMIS-2592 Fixing DeadLock between deleteMessages and depage
This was happening through purge
2020-01-09 19:41:14 -06:00
yang wei 3e20906a49 NO-JIRA typo on logger 2020-01-09 15:21:29 -06:00
Justin Bertram 9e9c0778b1 ARTEMIS-2516 support sys props in xinclude href 2020-01-09 14:04:09 -05:00
Clebert Suconic 534d8b4719 NO-JIRA Happy new year! 2020-01-08 20:44:05 -05:00
Justin Bertram 0293d80574 NO-JIRA support 0 in human readable byte calculation 2020-01-08 12:37:30 -06:00
Wei Yang 0e6a1dee47 ARTEMIS-2584 Optimize PageTransactionInfoImpl in-memory size 2020-01-08 12:39:14 -05:00
Justin Bertram 1ad8b3c059 ARTEMIS-2590 support com.sun.jndi.ldap.read.timeout in LDAPLoginModule 2020-01-08 12:38:27 -05:00
Justin Bertram 6a290cf2b2 ARTEMIS-2591 add details to consumer lock timeout log 2020-01-08 12:31:15 -05:00
Justin Bertram 59e7db8925 ARTEMIS-2567 redundant lock on server.lock file 2020-01-08 14:04:43 +08:00
Christopher L. Shannon (cshannon) fe66506139 ARTEMIS-2565 - Add plugin support for Federated Queues/Addresses
Add a new interface called ActiveMQServerFederationPlugin to allow
customization of the federated queue/address feature of the broker
2020-01-06 06:38:35 -05:00
Dewald Pretorius 9fac4b866c ARTEMIS-2550 Support Websocket Continuation Frames
Large messages can be split up using Websocket Continuation Frames.
This allows for much smaller buffer sizes to send or receive
potentially very large messages.
2020-01-02 20:36:35 -06:00
Clebert Suconic 13278cc45f ARTEMIS-2581 Duplicate Detection on AMQP should be configurable
There is an optimization in AMQP, that properties are only parsed over demand.

It happens that after ARTEMIS-2294 (commit 2dd0671698),
every send would request for the property on the message, resulting the properties to always be parsed upon send.
Even when there's no use of application properties.
2019-12-19 17:54:21 -05:00
Justin Bertram 8d8eaebb65 ARTEMIS-2580 support pluggable SSL TrustManagerFactory 2019-12-19 17:53:52 -05:00
Justin Bertram 2a452bd7a3 ARTEMIS-2578 clarify storage capacity messages
This is a surprisingly large change just to fix some log messages, but
the changes were necessary in order to get the relevant data to where it
was being logged. The fact that the data wasn't readily available is
probably why it wasn't logged in the first place.
2019-12-17 20:27:10 -05:00
Wei Yang 9c928377c9 NO-JIRA minor changes on test 2019-12-17 09:40:31 -05:00
Justin Bertram c06404406c ARTEMIS-2574 allow security manager config via XML
The test-suite has long used the broker's ability to configure the
security manager. This commit implements this functionality via XML
configuration.
2019-12-12 15:48:43 -05:00
Clebert Suconic 747c8dca71 ARTEMIS-2549 Removing duplicate definition of attribute 2019-12-11 13:50:13 -05:00
sebthom 51eb01e88e NO-JIRA Minor code improvement in QueueImpl
Removed unused private constant FLUSH_TIMEOUT.
Solved some compiler warnings (missing generic type, private class can
be final). Fixed a performance related sevntu checkstyle warning
"Variable 'xyz' can be moved inside the block at line '2,864' to
restrict runtime creation.".
2019-12-11 10:18:43 -05:00
brusdev b666cb495b ARTEMIS-2572 The retryMessages remove all paged messages
Add a paged message to the tail, when the QueueIterateAction doesn't handle it, to avoid removing unhandled paged message. Move the refRemoved calls from the QueueIterateActions to the iterQueue to fix the queue stats.
2019-12-10 13:00:16 +01:00
Sebastian Thomschke 3ad8391e9b
ARTEMIS-2570 Improve performance of ConnectionsView 2019-12-06 11:55:48 +01:00
Wei Yang 9ce8cad970 NO-JIRA close page after recovering page counter 2019-12-05 16:52:58 -05:00
Justin Bertram 04db90edde ARTEMIS-2567 restore locking semantics on server.lock when reading status 2019-12-05 11:39:11 -06:00
Clebert Suconic 108ee5d24b NO-JIRA Fixing intermittent failure 2019-12-03 16:25:00 -05:00
Justin Bertram 8614ca1167 ARTEMIS-2564 retryMessages incorrectly removes msgs 2019-12-03 14:24:01 -05:00
Clebert Suconic 0b1afd35dc ARTEMIS-2421 Using ActiveMQScheduledComponent 2019-11-26 16:15:06 -05:00
Bas Elzinga e12f3ddc6f ARTEMIS-2421 periodic journal lock evaluation
If a broker loses its file lock on the journal and doesn't notice (e.g.
network connection failure to an NFS mount) then it can continue to run
after its backup activates resulting in split-brain.

This commit implements periodic journal lock evaluation so that if a live
server loses its lock it will automatically restart itself.
2019-11-26 11:14:56 -05:00
Clebert Suconic 506c03a884 ARTEMIS-2559 Clear Transaction out of ResourceManager in case of failure 2019-11-22 10:30:29 -05:00
brusdev 9946d8e63c ARTEMIS-2538 Removing all messages from a huge queue causes OOM
The PageSubscriptionImpl.cleanupEntries could be locked by the queue
depage because they are executed with the same executor and the depage
could be locked by the iterQueue.
If PageSubscriptionImpl.cleanupEntries is locked, no one clean up the
JournalRecord and PagePositionImpl instances created during iterQueue.
So removing all messages from a huge queue, causes the retention of too
JournalRecord and PagePositionImpl instances until an OOM.
To avoid to lock the PageSubscriptionImpl.cleanupEntries the depage is
executed only if the queue isn't iterating.
2019-11-22 10:10:16 -05:00
Clebert Suconic 91cbbb8698 ARTEMIS-2559 Connection failure should rollback pending XA TX 2019-11-21 17:52:45 -05:00
Christopher L. Shannon (cshannon) fb54707e2d ARTEMIS-2549 - Add Downstream support to Federation
This commit introduces the ability to configure a downstream connection
for federation.  This works by sending information to the remote broker
and that broker will parse the message and create a new upstream back
to the original broker.
2019-11-20 08:47:16 -05:00
Andy Taylor 0ab75b9968 ARTEMIS-2554 - Queue control browse broken with large messages
https://issues.apache.org/jira/browse/ARTEMIS-2554
2019-11-18 10:36:18 +00:00
michael.pearce f6401d81b5 ARTEMIS-2547 fix AMQP Client reconnect fails on broker stop start
Add unit test
Add fix to clear clientids when server is stopped.
2019-11-11 12:33:13 +00:00
sebthom 54daa445ed ARTEMIS-2541 Improve message browser of Admin UI 2019-11-08 12:31:50 +01:00
sebthom 318c26cde7 ARTEMIS-2540 Display LargeMessage column in message browser of admin UI 2019-11-05 20:02:51 -05:00
brusdev f680d9f712 ARTEMIS-2466 PageSyncTimer::timeSync isn't configurable using ASYNCIO
Add the config parameter `page-sync-timeout` to set a customized value,
because if the broker is configured to use ASYNCIO journal, the timeout
has the same value of NIO default journal buffer timeout ie 3333333.
2019-11-05 22:44:52 +01:00
brusdev 83e2595618 ARTEMIS-2534 Deleting addresses auto created on configuration reload
Skip the deletion of address's and queue's auto created on configuration
reload.
2019-11-05 16:05:27 -05:00
brusdev 55a55daa7b ARTEMIS-2538 Removing all messages from a huge queue causes OOM
The iterQueue transaction commits are locked by the synchronization
context. So removing all messages from a huge queue causes the creation
of too locked transactions for the paged messages and so OOM.
The iteration on paged message is executed out the iterQueue
synchronization context to avoid to lock the transaction commits.
2019-11-05 16:04:08 -05:00
Joshua Smith d7d11a0c6f ARTEMIS-2535 Add ignorePartialResultException option to LDAPLoginModule
Active Directory servers are unable to handle referrals automatically.
This causes a PartialResultException to be thrown if a referral is
encountered beneath the base search DN, even if the LDAPLoginModule is
set to ignore referrals.

This option may be set to 'true' to ignore these exceptions, allowing
login to proceed with the query results received before the exception
was encountered.

Note: there are no tests for this change as I could not reproduce the
issue with the ApacheDS test server. The issue is specific to directory
servers that don't support the ManageDsaIT control such as Active
Directory.
2019-10-30 13:47:50 -07:00
Justin Bertram 0ddd55b2cc NO-JIRA add acceptor to handshake timeout msg 2019-10-29 14:37:57 -04:00
Justin Bertram 84067d8fef ARTEMIS-2504 implement retroactive addresses
A new feature to preserve messages sent to an address for queues that will be
created on the address in the future. This is essentially equivalent to the
"retroactive consumer" feature from 5.x. However, it's implemented in a way
that fits with the address model of Artemis.
2019-10-28 09:01:42 -04:00
Justin Bertram c0e77e96d1 ARTEMIS-2529 update address-settings mngmnt 2019-10-28 09:01:42 -04:00
Christopher L. Shannon (cshannon) ad0581bf76 ARTEMIS-2531: Fix filter in FederatedQueue to prevent infinite consumer
creation in a circular or bidrectional setup
2019-10-25 14:26:46 -04:00
Christopher L. Shannon (cshannon) 1aed3f9dd6 ARTEMIS-2526 - Update ActiveMQServerImpl to call correct
beforeDestroyQueue hook
2019-10-24 16:20:08 -04:00
brusdev 0ac605740e ARTEMIS-2503 Improve wildcards for the authorisation key attributes
Improve wildcard support for the key attribute in the roles access
match element and whitelist entry element, allowing prefix match for
the mBean properties.
2019-10-23 15:27:53 -04:00
Wei Yang 89698b9dbc ARTEMIS-2524 Remove message from map in LVQ if it's deleted/moved/expired/changed 2019-10-21 20:46:13 -04:00
Howard Gao 6177d32774 ARTEMIS-2513 Large message's copy may be interfered by other threads
In LargeMessageImpl.copy(long) it need to open the underlying
file in order to read and copy bytes into the new copied message.
However there is a chance that another thread can come in and close
the file in the middle, making the copy failed
with "channel is null" error.

This is happening in cases where a large message is sent to a jms
topic (multicast address). During delivery it to multiple
subscribers, some consumer is doing delivery and closed the
underlying file after. Some other consumer is rolling back
the messages and eventually move it to DLQ (which will call
the above copy method). So there is a chance this bug being hit on.
2019-10-14 15:59:31 -04:00
Wei Yang cb355bb584 ARTEMIS-2515 pageIterator.hasNext spends too much time in the case of no messages matched 2019-10-12 15:36:04 -04:00
Clebert Suconic b0497ed724 ARTEMIS-2517 JMX will be shutdown after failback 2019-10-10 14:44:55 -04:00
brusdev 28d1a53630 ARTEMIS-2508 Crititical analyser trigger shutdown if removeAllMessages
The crititical analyser trigger the broker shutdown if try to
removeAllMessages with a huge queue. The iterQueue is split so as
not to keep the lock too time.
2019-10-09 11:41:00 -04:00
Justin Bertram 2992daaeb1 ARTEMIS-2514 dupl cache leak w/clustered temp q 2019-10-08 17:11:38 -04:00
brusdev 615fb64008 ARTEMIS-2512 Move the LocalMonitor tick log
The LocalMonitor tick log is very useful to establish a "heartbeat" log
statement. It is moved into its own logger from PagingManager logger,
which is too verbose to leave activated indefinitely in production.
2019-10-07 17:49:45 +02:00
Keith Wall 4e0b209128 ARTEMIS-2505: Fix wiring of the max-size-bytes-reject-threshold address-setting 2019-09-27 15:29:42 -04:00
Howard Gao d02da18dab ARTEMIS-2506 MQTT doesn't cleanup underlying connection for bad clients
When a bad MQTT clients drop its connection without proper closing
it the broker doesn't close the underlying physical connection.
2019-09-27 19:41:15 +08:00
Clebert Suconic 91f4d0a633 [maven-release-plugin] prepare for next development iteration 2019-09-23 11:19:54 -04:00
Clebert Suconic 86a975fdad [maven-release-plugin] prepare release 2.10.1 2019-09-23 11:19:42 -04:00
Clebert Suconic 8b9819b2b6 NO-JIRA renaming method to reflect its real operation 2019-09-23 10:39:56 -04:00
Clebert Suconic 70c2200c54 ARTEMIS-2496 Revert catch up with zero-copy, as it's causing issues into some integration usage
Revert "ARTEMIS-2336 Use zero copy to replicate journal/page/large message file"

This reverts commit 85b93f0883.
2019-09-18 11:55:23 -04:00
Clebert Suconic b846f356bb ARTEMIS-2462 Applying fix on delete SNF queue after ScaleDown 2019-09-17 14:05:00 -04:00
Howard Gao dd20f89bd0 ARTEMIS-2462 re-applying tests on SNF Delete Queue 2019-09-17 14:05:00 -04:00
Clebert Suconic d55ec37195 Revert "ARTEMIS-2462 Allow store-forward queue to be deleted afte scaledown"
This reverts commit 397cef699a.
2019-09-17 14:05:00 -04:00
Justin Bertram c56b8fb9d2 ARTEMIS-2489 ring q fails w/concurrent producers 2019-09-13 10:08:32 -05:00
Andy Taylor 42327a490a ARTEMIS-2480 - Reloading configuration can kill broker
https://issues.apache.org/jira/browse/ARTEMIS-2480
2019-09-11 17:37:11 +02:00
Wei Yang e43c5390cf ARTEMIS-2478 Expired message not removed in non destructive queue 2019-09-11 09:37:03 -04:00
Justin Bertram c5376789b0 ARTEMIS-2475 log metrics plugin init details 2019-09-10 20:05:25 -04:00
Clebert Suconic 5373c60891 ARTEMIS-2474 Retry interval ignored on Backup Connectors 2019-09-10 15:03:01 -04:00
Clebert Suconic 54de31e813 NO-JIRA Fixing intermittent failures 2019-09-10 15:00:45 -04:00
Clebert Suconic 7fd7558ed8 NO-JIRA Fixing intermittent failures 2019-09-10 14:53:49 -04:00
Wei Yang da6fedf6ae ARTEMIS-2472 Persistent and delivering size not right in replacement of lvq message 2019-09-06 14:26:30 -04:00
Francesco Nigro 9413925957 ARTEMIS-2473 RemoteQueueBindingImpl should check for empty filters 2019-09-06 14:26:03 -04:00
Francesco Nigro a9ce90f97a ARTEMIS-2471 JdbcNodeManager doesn't use jdbc-user and jdbc-password tags 2019-09-05 09:21:35 -05:00
Wei Yang 4a61d2dc76 ARTEMIS-2380 Fix delivering message in the case of consume close 2019-09-04 11:02:16 +08:00
Howard Gao 397cef699a ARTEMIS-2462 Allow store-forward queue to be deleted afte scaledown
After a node is scaled down to a target node, the sf queue in the
target node is not deleted.

Normally this is fine because may be reused when the scaled down
node is back up.

However in cloud environment many drainer pods can be created and
then shutdown in order to drain the messages to a live node (pod).
Each drainer pod will have a different node-id. Over time the sf
queues in the target broker node grows and those sf queues are
no longer reused.

Although use can use management API/console to manually delete
them, it would be nice to have an option to automatically delete
those sf queue/address resources after scale down.

In this PR it added a boolean configuration parameter called
cleanup-sf-queue to scale down policy so that if the parameter
is "true" the broker will send a message to the
target broker signalling that the SF queue is no longer
needed and should be deleted.

If the parameter is not defined (default) or is "false"
the scale down won't remove the sf queue.
2019-08-28 21:16:38 +08:00
Clebert Suconic 5016f69daa [maven-release-plugin] prepare for next development iteration 2019-08-26 10:42:13 -04:00
Clebert Suconic f092d5396a [maven-release-plugin] prepare release 2.10.0 2019-08-26 10:42:01 -04:00
Justin Bertram dde6862aed ARTEMIS-2457 fix non-destructive ring q test 2019-08-26 10:06:52 -04:00
Clebert Suconic e14a533d6e Revert "ARTEMIS-2415 JDBCJournal miss pending tasks during shutdown"
This reverts commit a85f029106.
2019-08-26 07:19:19 -04:00
brusdev a85f029106 ARTEMIS-2415 JDBCJournal miss pending tasks during shutdown
Wait deleting large message tasks during stop.
2019-08-25 23:58:59 -04:00
gtully b20c2593e9 ARTEMIS-2433 add ExternalCertificateLoginModule to surface a SASL EXTERNAL identity (subjectDN) to JAAS. 2019-08-25 23:57:20 -04:00
brusdev ee31a92d23 ARTEMIS-2392 Enable remove on cancel policy for scheduled pool
By default, such a cancelled task is not automatically removed from the
work queue until its delay elapses. It may cause unbounded retention of
cancelled tasks. To avoid this, set remove on cancel policy to true.
2019-08-25 23:54:11 -04:00
Justin Bertram 449f0323ec ARTEMIS-2364 collision avoidance for redelivery
This is a feature from 5.x implemented via
https://issues.apache.org/jira/browse/AMQ-747.
2019-08-25 23:36:09 -04:00
Justin Bertram 51c2022f38 ARTEMIS-2457 implement ring queue 2019-08-25 23:29:44 -04:00
Clebert Suconic c929d34eed ARTEMIS-2454 Fixing body re-encoding 2019-08-25 23:03:53 -04:00
Wei Yang 510339423e ARTEMIS-2459 Fix err in the replacement of a non-destructively consumed LVQ message 2019-08-22 11:50:28 -04:00
Clebert Suconic 7496dc6829 ARTEMIS-2450 Fixing page-size Nullable Long encoding 2019-08-21 14:37:54 -04:00
Michael Pearce 25d0b511ce ARTEMIS-2458 Fix AMQP Transaction Session Close Ordering 2019-08-21 09:34:08 -04:00
Clebert Suconic 61eb379741 ARTEMIS-2458 Fix AMQP Transaction Rollback Ordering by using a sorted add 2019-08-21 09:34:07 -04:00
Wei Yang a644c498da ARTEMIS-2450 page-size-bytes should not be greater than Integer.MAX_VALUE 2019-08-19 17:18:06 +01:00
yang wei e537fbfde0 ARTEMIS-2407 Large message file not deleted if broker crashes between page deleted and pending large message written 2019-08-19 16:46:07 +01:00
yang wei 76d420590f ARTEMIS-2399 Improve performance when there are a lot of subscribers 2019-08-19 16:43:44 +01:00
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