Commit Graph

301 Commits

Author SHA1 Message Date
Christopher L. Shannon (cshannon) 78a399cb87 AMQ-9254 - Rework data file size validation and add unit test
This isolates the validation on data file length on read and adds unit
tests to verify we properly fallback to the real file length on initial
size check failure

(cherry picked from commit bcc74f93fe)
2023-05-03 06:06:47 -04:00
Matt Pavlovich cd676023cc [#9254] DataFile readRecord fallback to OS file.length in rare edge case
(cherry picked from commit 3e61a200d0)
2023-05-03 06:06:47 -04:00
JB Onofré c86cd20029
Merge pull request #957 from mjanczykowski/bugfix/AMQ-9199
[AMQ-9199] Fixed race condition in creating store directory
2023-02-02 14:43:40 +01:00
Christopher L. Shannon (cshannon) ed924cddac AMQ-9202 - Make sure Reentrant locks are acquired outside a try block
This is best practice and will prevent unlock from being attempted
inside of a finally block when the thread doesn't actually own the
lock which can happen when the lock attempt throws an exception
such as calling lockInterruptibly()
2023-02-01 11:19:24 -05:00
Michał Janczykowski 13ec5d5b7a [AMQ-9199] reordered imports 2023-01-17 12:26:21 +01:00
Michał Janczykowski 7de7ba2aa9 [AMQ-9199] Fixed race condition in creating store directory
A store directory is created by MessageDatabase#getPageFile which
is called in two cases:
1. KahaDBStore.start() when creating a queue
2. KahaDBStore.size() which is performed when sending any persistent message

If both methods are called concurrently it's possible to get an IOException
thrown from the IOHelper.mkdirs method.
2023-01-17 12:20:53 +01:00
Dmytro Chebotarskyi dc55028c00 Added additional logging on BrokerService startup 2022-11-29 07:51:20 +01:00
Dmytro Chebotarskyi 73f827f9a6 [NO JIRA] Removing unused concurrentStoreAndDispatchTransactions variable from KahaDBStore. Cleaning up related unused code. 2022-09-06 12:18:40 -07:00
jbonofre 472dcf8497 [AMQ-7426] Upgrade to log4j2 2022-02-24 15:20:51 +01:00
Lucas Tétreault 60859b0b7f Use B+ Tree iterator instead of DFS to find scheduled jobs to be executed 2021-11-24 01:06:47 -08:00
Matt Pavlovich c0d5399635
[AMQ-8285] Add 'slow' metrics to PersistenceAdapterStatistics (#664) 2021-06-04 06:19:54 +02:00
Jean-Baptiste Onofré ae777e9571
Merge pull request #665 from mattrpav/AMQ-8282
[AMQ-8282] Migrate from deprecated .newInstance() calls to .getConstr…
2021-06-04 06:18:27 +02:00
Colm O hEigeartaigh 7ca7118a95 AMQ-8117 - Allow java.util arrays for deserialization 2021-06-03 14:42:42 +01:00
Matt Pavlovich 950a140455 [AMQ-8282] Migrate from deprecated .newInstance() calls to .getConstructors().newInstance 2021-06-02 08:30:36 -05:00
Matt Pavlovich 2cc17a2fa0 [AMQ-8279] Compiler warning cleanups
- Remove unsused imports (exept for generated classes)
 - Convert to T.valueOf on boxed primitives from new T()
2021-05-25 09:34:35 -05:00
Jonathan Gallimore edd0515d90 AMQ-8201 Forward commit commands for local transactions as well as XA transactions during ACK compaction 2021-03-25 11:02:53 +00:00
gtully 09389d1ef3 AMQ-8202 - fix concurrency issue on tracking stores in mKahaDB, exposed by virtual topic concurrentSend 2021-03-24 15:55:44 +00:00
jbonofre cbc1baa07a [AMQ-8097] Deal with deserialization with xstream unmarshal poison ack 2021-01-13 16:13:25 +01:00
jbonofre 43af228f2a Improve stability of KahaDB tests 2020-11-18 09:02:25 +01:00
gtully 72146d2dae AMQ-8040 - ensure state relating to diskbound tmp file pages is preserved on next update, fix and test 2020-09-11 17:04:15 +01:00
Pascal Schumacher efcca7d062 Fix javadoc warnings related to non-existing parameter names. 2020-05-22 10:49:39 +02:00
gtully cedac472a1 [AMQ-7488] mkahadb - detect txStore corruption and suspend recovery, auto recover if no outcomes pending 2020-05-20 12:43:37 +01:00
Pascal Schumacher 67e06c82f7 Fix some javadoc warnings releated to non-existing parameter names. 2020-05-17 11:38:05 +02:00
Jean-Baptiste Onofré 0444dd96b2
Merge pull request #505 from PascalSchumacher/potential_overflow_in_int_multiplication
Avoid potential overflow in int multiplication before it is converted…
2020-05-16 07:17:13 +02:00
Pascal Schumacher b43f5b8cf2 Avoid potential overflow in int multiplication before it is converted to long. 2020-03-08 11:50:21 +01:00
Colm O hEigeartaigh a73a85e6c2 AMQ-7438 - Harden deserialization 2020-03-06 17:22:07 +00:00
gtully 5d03224880 no jira - additional trace logging to kahadb cleanup/gc to identify datafile for durable sub command and pending count by sub key 2020-02-28 09:47:02 +00:00
jbonofre 927e01f0c8 Flexible AMQ7086Test on KahaDB for Jenkins 2020-02-26 08:22:19 +01:00
Daniel Trebbien 3faad9b357 Use simpler SLF4J API functions
Eliminates the need to construct a new (temporary) Object array object.

These changes were suggested by SLF4J Helper for NetBeans IDE:
http://plugins.netbeans.org/plugin/72557/
2020-02-19 07:54:25 +00:00
Daniel Trebbien 6d36c490e5 Fix inconsistent 'info'-level logger calls
Some calls to info() were guarded by checks that logging at the trace
level is enabled.

These issues were found by SLF4J Helper for NetBeans IDE:
http://plugins.netbeans.org/plugin/72557/
2020-02-19 07:41:31 +00:00
Pascal Schumacher 5356893fac AMQ-7402: Inconsistent synchronization of getters/setters of some classes
Make synchronization consistent or remove it and declare the field volatile.
2020-02-12 17:48:34 +01:00
Colm O hEigeartaigh 675fb7bcae AMQ-7376 - Use correct type for collections retrieval 2020-01-20 18:35:01 +00:00
Jean-Baptiste Onofré a0531943a4
Merge pull request #348 from nguyenhoan/patch-1
close DataByteArrayOutputStream buff of WriteBatch
2019-11-17 06:46:01 +01:00
gtully ed5edb03d7 AMQ-7311 - track recovered prepared ack locations on a per subscriber basis, fix and test 2019-09-26 15:54:57 +01:00
gtully 289750d7c9 AMQ-7308 - ensure kahadb message add does not auto create the message store in error, expect an existing store. fix and test 2019-09-20 10:22:56 +01:00
gtully 4d5e41ca28 AMQ-7227 - ensure db.free file is moved in scheduler store upgrade process 2019-06-14 10:01:57 +01:00
Christopher L. Shannon (cshannon) ac01af8dec Merge branch 'AMQ-7221'
This closes #364

Thanks to Alan Protasio for the patch
2019-06-11 07:51:33 -04:00
gtully 28a0cc6e5a AMQ-7225 - fix intermittent failure, avoid gc of partial tx pending commit 2019-06-11 12:36:02 +01:00
gtully 93e726d6a7 AMQ-7225 - defer cleanup task operation till recovery processing complete, track prepared location in recovered ops to ensure they are retained on recovery failure. Fix and test 2019-06-10 15:33:13 +01:00
Alan Protasio 5eb8403b1f AMQ-7221 - Delete Scheduled messages causes ActiveMQ create/write a unnecessary huge transaction file 2019-06-04 00:02:05 -07:00
Alan Protasio bce979349e AMQ-7219 - ActiveMQ replays journal file on a clean/unclean shutdown with transacted session + Non persistent Messages 2019-05-30 10:13:16 -07:00
Alan Protasio b56819123b AMQ-7196 - During startup ActiveMq load all the scheduleDB.data on memory causing OOM 2019-05-08 12:00:42 -07:00
Alan Protasio cd1d5eb785 AMQ-7163 - If the broker had an unclean shutdown and number of free pages is Zero after the recovery, the next shutdown will also be 'unclean' 2019-03-06 15:33:52 -08:00
Alan Protasio 87467dc61e AMQ-7159 - Adding a new attribute on PersistenceAdapterViewMBean to show information about Storage write/read latency 2019-03-06 11:41:08 -08:00
Hoan Nguyen 0262338687
close DataByteArrayOutputStream buff of WriteBatch 2019-02-26 19:07:26 -08:00
Alan Protasio 9e65435517 AMQ-7143 - Temporary transaction file (PageFile) being opened and closed many times, causing poor performance on high latency FS as NFS 2019-01-31 10:31:16 -05:00
Christopher L. Shannon (cshannon) c3714457f1 AMQ-7136 - Improve recovery of durable subscription metrics in KahaDB
Updated metrics recovery to only have to iterate over the order index 1
time to recovery the pending metrics for the subscriptions instead of
making a pass over the index once per subscription
2019-01-15 14:22:26 -05:00
Alan Protasio 4b51f8b66c AMQ-7132 - ActiveMQ reads lots of index pages upon startup (after a graceful or ungraceful shutdown) 2019-01-14 10:54:26 -05:00
Christopher L. Shannon (cshannon) a16b227808 AMQ-7129 - code cleanup 2019-01-11 10:31:44 -05:00
Christopher L. Shannon (cshannon) fa2daa25e9 AMQ-7129 - fix durable message size statistics with individual ack
Make sure that the pending message size for a durable sub only includes
messages part of the ack range
2019-01-11 09:56:57 -05:00