Commit Graph

802 Commits

Author SHA1 Message Date
Justin Bertram 0a7757b2cd ARTEMIS-2199 PagingStore leak when deleting queue
When deleting a queue the JMSPostQueueDeletionCallback#callback will
invoke PostOfficeImpl#getBindingsForAddress which will *create* a
Bindings instance if one doesn't exist. This will trigger the creation
of a PagingStore instance which will be stored by the PagingManager
and may never be deleted. This is particularly problematic for use-cases
involving temporary JMS queues.

This change uses the lookupBindingsForAddress instead of
getBindingsForAddress which doesn't implicitly create a Bindings
instance.

This problem doesn't exist on the master branch as the
JMSPostQueueDeletionCallback no longer exists there.
2018-12-10 14:45:22 -06:00
Justin Bertram 11ce7f864e ARTEMIS-1874 fix NPE setting object property
(cherry picked from commit 4d492bea0e)
2018-09-28 10:41:40 +02:00
Clebert Suconic c3fded0be8 ARTEMIS-2053 avoiding data loss after compacting
(manually picked from commit 6b1abd1aad)
2018-09-05 12:15:59 -04:00
Francesco Nigro 0da630be50 ARTEMIS-1653 Allow database tables to be created externally
(cherry picked from commit c7651853cd)
2018-04-18 09:53:17 -04:00
Clebert Suconic 3c54609278 ARTEMIS-1776 Blocked Bridge is not resuming after reconnect
This is still part of ARTEMIS-1776 fix, which still part of the same release as we are on now.
Hence I'm not opening a new JIRA for this one.

Cherry-picked from e5bce13316
2018-04-11 08:28:19 +02:00
Clebert Suconic 2c73bd0462 ARTEMIS-1776 Asynchronous Flow control on the bridge
Cherry-picked from 70bdfe7603
2018-04-10 16:44:07 +02:00
Howard Gao 1e6e1f77d0 ARTEMIS-1621 Make producerWindowSize configurable on clusterconnection bridges
The cluster connection bridge hard codes its producerWindowSize to -1
(meaning no producer flow control) even if you configure it otherwise.

Cherry-picked from 98ce31bf58
2018-04-10 16:29:47 +02:00
Francesco Nigro 9426f7a3c8 ARTEMIS-1757 Improve DB2 compatibility
(cherry picked from commit f5868a94e1)
2018-03-28 11:54:15 -04:00
Francesco Nigro 03ff0661b8 ARTEMIS-1640 JDBC NodeManager tests have to be customizable to run on different DBMS
(cherry picked from commit b1422fc3d6)
2018-03-28 11:54:15 -04:00
Jeff Mesnil 2a0b9039a3 [ARTEMIS-1590] Properties-based SQLProvider
(cherry picked from commit 938fbd81cb)
2018-03-28 11:54:15 -04:00
Francesco Nigro a0f3da5d72 ARTEMIS-1509 Add support for JdbcNodeManager into the NettyFailoverTest
(cherry picked from commit 8e8a6f0faf)
2018-03-28 11:54:15 -04:00
Yeray Borges de7f6de094 [ARTEMIS-1666] List of prepared transaction details returns Object.toString() instead of Json string 2018-02-12 10:32:19 -06:00
Clebert Suconic e03c41aabd NO-JIRA fixing TimedbufferTest as fixed on master 2017-09-26 14:43:56 -04:00
Clebert Suconic 492b55e09a ARTEMIS-1353 Initial replication of large messages out of executor
This is based on the work @jbertram made at the github pr #1466 and the discussions we had there

(cherry picked from commit ce6942a9aa)
2017-09-26 14:28:07 -04:00
Martyn Taylor 5db0c8772e NO JIRA Remove failing tests due to cherrypick 2017-09-26 14:28:06 -04:00
Clebert Suconic fef0256bfa ARTEMIS-1305 Fix checkstyle and traces
https://issues.jboss.org/browse/JBEAP-9235
2017-09-26 14:28:06 -04:00
Howard Gao 6f0bebaad7 ARTEMIS-1220 removing broken test
Testsuite won't compile
2017-09-26 14:28:06 -04:00
Howard Gao 7b1a1b058a ARTEMIS-1221 Duplicated ID causes LargeMessage lost at backup
When a large message is replicated to backup, a pendingID is generated
when the large message is finished. This pendingID is generated by a
BatchingIDGenerator at backup.

It is possible that a pendingID generated at backup may be a duplicate
to an ID generated at live server.

This can cause a problem when a large message with a messageID that is
the same as another largemessage's pendingID is replicated and stored
in the backup's journal, and then a deleteRecord for the pendingID
is appended. If backup becomes live and loads the journal, it will
drop the large message add record because there is a deleteRecord of
the same ID (even though it is a pendingID of another message).
As a result the expecting client will never get this large message.

So in summary, the root cause is that the pendingIDs for large
messages are generated at backup while backup is not alive.

The solution to this is that instead of the backup generating
the pendingID, we make them all be generated in advance
at live server and let them replicated to backup whereever needed.
The ID generater at backup only works when backup becomes live
(when it is properly initialized from journal).

(cherry picked from commit d50f577cd5)
2017-09-26 14:28:05 -04:00
Martyn Taylor 5faf2cd829 NO-JIRA Remove artemis-feature dep from integration tests 2017-09-26 14:28:05 -04:00
Clebert Suconic e5ef406e4e ARTEMIS-1333 Fix SendACK
(fix copied manually from master.. not possible to cherry-pick)
2017-08-10 22:27:57 -04:00
Clebert Suconic 9724571a98 ARTEMIS-1333 SendACK listener message loss (adding test)
next commit should have the fix.
this is to make it easy to confirm the fix by people looking.

(cherry picked from commit 96c6268f5a)
2017-08-10 22:24:37 -04:00
Erich Duda c04fb0f7da ARTEMIS-1265 JaCoCo profile for getting code coverage report
Added two maven profiles for:
 - generating JaCoCo exec files
 - generating JaCoCo reports

(cherry picked from commit 22b4755fbb)
2017-08-02 12:51:57 -04:00
Clebert Suconic 41bd6c7cfb ARTEMIS-1261 Fix compilation 2017-07-25 22:43:57 -04:00
Howard Gao 144a7c8a42 ARTEMIS-1220 Diverted LargeMessage file corrupted during replication
When a large message is being diverted, a new copy of the original
message is created and replicated (if there is a backup) to the backup.

In LargeServerMessageImpl.copy(long) it reuse a byte array to copy
message body. It is possible that one block of date is read into
the byte array before the previous read has been replicated,
causing the replicated bytes to corrupt.

If we make a copy of the byte array before replication, the corruption
of data will be avoided.

(cherry picked from commit 045021f7df)
2017-07-25 11:52:28 -04:00
Clebert Suconic cba7af50b6 ARTEMIS-1304 ignoring invalid test
(cherry picked from commit cd9ce6a502)
2017-07-25 10:09:04 -04:00
Clebert Suconic ffa09afb1f ARTEMIS-1304 fixing compilation 1.x 2017-07-24 22:55:07 -04:00
Clebert Suconic 2a2f25664c ARTEMIS-1304 Message loss on Commmit timeout during failover
(cherry picked from commit 50a900c04b)
2017-07-24 20:27:56 -04:00
Francesco Nigro 44d3be5a7e ARTEMIS-1301 Network failures recognition on backpressure while streaming large messages
(cherry picked from commit 32fe21d595)
2017-07-24 09:43:43 -04:00
xstefank e2d9e1bb63 ARTEMIS-1257 ActiveMQActivationSpec.java should use boxed types for attributes values according to the JCA specification
(cherry picked from commit 553043393e)
2017-07-24 09:42:25 -04:00
Clebert Suconic b6b5b4caa7 ARTEMIS-1294 Using older sleep on TimedBuffer
And also adding test

(cherry picked from commit ad372ec98e)
2017-07-19 10:48:12 -04:00
Clebert Suconic 423f26f027 ARTEMIS-1288 crash during compact control files issues
The system would become irresponsive if crashed right at the
control file writing.
2017-07-13 17:16:30 -04:00
Erich Duda f0907f6f3f ARTEMIS-1274 MultipleProducersTest.wrongQueue fails
(cherry picked from commit ab92306d81)
2017-07-11 13:49:50 +02:00
Clebert Suconic 276319d72b ARTEMIS-1269 Fixing blocked replication
If replication blocked anything on the journal
the processing from clients would be blocked
and nothing would work.

As part of this fix I am using an executor on ServerSessionPacketHandler
which will also scale better as the reader from Netty would be feed immediately.
2017-07-07 08:56:31 -04:00
Clebert Suconic f744904fdb ARTEMIS-1269 replication won't finish synchronization
(cherry picked from commit 6b2798a0fe02bcb5ca2f13b1431fd8dfe327d20e)
2017-07-01 00:47:50 -04:00
Clebert Suconic c5e88c5e2d ARTEMIS-1256 PagingOMETest.testPageCleanup fails
Using a Wait condition.

This closes #1370

(cherry picked from commit 5c2144b782)
2017-06-28 10:09:44 -04:00
Erich Duda 5f346f203c ARTEMIS-1250 ClusteredMessageCounterTest.testNonDurableMessageAddedWithPaging fails
Before sending of messages to server 0 begins, the test
should wait until consumer is registered at RemoteQueueBindingImpl
on server 0. Otherwise some messages may not be rebalanced
to server 1.

(cherry picked from commit c5a25d3322)
2017-06-23 15:09:46 +02:00
Andy Taylor 0bc9ab2c49 ARTEMIS-1211 - Allow local transactions when no jta in Resource Adapter
https://issues.apache.org/jira/browse/ARTEMIS-1211
2017-06-14 13:20:46 -05:00
Andy Taylor 26d6bb3963 ARTEMIS-1224 - change the journal file size to nearest multiple
https://issues.apache.org/jira/browse/ARTEMIS-1224
2017-06-12 13:12:55 -05:00
Erich Duda 8574f9949f ARTEMIS-1208 Do not use reconnect-atempts=-1 in tests
(cherry picked from commit 30e8ca656c)
2017-06-12 08:43:36 +02:00
Francesco Nigro fa8283f56c ARTEMIS-1165 Artemis 1.x JMS bindings doesn't handle JDBC network problems 2017-05-17 15:00:10 +02:00
Clebert Suconic c7dc04c2af [maven-release-plugin] prepare for next development iteration 2017-05-08 21:00:29 -04:00
Clebert Suconic ae41632bbe [maven-release-plugin] prepare release 1.5.5 2017-05-08 21:00:17 -04:00
Francesco Nigro 25094f2721 ARTEMIS-1151 Adapting TimedBuffer and NIO Buffer Pooling
- NIO/ASYNCIO new TimedBuffer with adapting batch window heuristic
- NIO/ASYNCIO improved TimedBuffer write monitoring with
  lightweight concurrent performance counters
- NIO/ASYNCIO journal/paging operations benefit from less buffer copy
- NIO/ASYNCIO any buffer copy is always performed with raw batch copy
  using SIMD instrinsics (System::arrayCopy) or memcpy under the hood
- NIO improved clear buffers using SIMD instrinsics (Arrays::fill) and/or memset
- NIO journal operation perform by default TLABs allocation pooling (off heap)
  retaining only the last max sized buffer
- NIO improved file copy operations using zero-copy FileChannel::transfertTo
- NIO improved zeroing using pooled single OS page buffer to clean the file
  + pwrite (on Linux)
- NIO deterministic release of unpooled direct buffers to avoid OOM errors
  due to slow GC
- Exposed OS PAGE SIZE value using Env class

(cherry picked from commit 21c9ed85cf)
2017-05-08 18:31:23 -04:00
Bernd Gutjahr 88e629a7ae ARTEMIS-1112: Added wait-for-activation option to shared-store-master config
Added a wait-for-activation option to shared-store master HA policies.
This option is enabled by default to ensure unchanged server startup behavior.

If this option is enabled, ActiveMQServer.start() with a shared-store master server will not return
before the server has been activated.
If this options is disabled, start() will return after a background activation thread has been started.
The caller can use waitForActivation() to wait until server is activated, or just check the current activation status.

(cherry picked from commit 6017e305d9)
(cherry picked from commit 7aa50546b3)
2017-05-04 11:28:12 +02:00
Clebert Suconic 468b8a954b ARTEMIS-1140: Trivial test fix
(cherry picked from commit 0146109d6a)
2017-05-03 16:41:42 -04:00
Martyn Taylor 9c013e74cb ARTEMIS-1125 Persist JMS Bindings in Database on JDBC 2017-04-20 21:04:26 +01:00
Clebert Suconic d8ff3f500f ARTEMIS-1115 Traces and tests on JDBC Persistence 2017-04-19 00:43:40 -04:00
Martyn Taylor 2ccc4e14f1 ARTEMIS-1115 Call CriticalIOListener on JDBC Error 2017-04-19 00:35:48 -04:00
Francesco Nigro c35960f6a4 ARTEMIS-1084 Throw RunTime on bad Oracle table size
(cherry picked from commit aa9ac4a914)
2017-04-17 11:04:46 +01:00
Clebert Suconic ec9615a01a ARTEMIS-1114 Missing records after compacting
This is fixing an issue introduced on 4b47461f03 (ARTEMIS-822)
The Transactions were being looked up without the readLock and some of the controls for Read and Write lock
were broken after this.

(cherry picked from commit ddacda5062)
2017-04-14 01:24:45 -04:00