Commit Graph

791 Commits

Author SHA1 Message Date
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
Bernd Gutjahr f07e592a66 ARTEMIS-1108: Removed AIOFileLockManager
AIOFileLockManager doesn't work on NFS-mounted share store directories.
Since the GFS2 bug https://bugzilla.redhat.com/show_bug.cgi?id=678585
has been fixed end of 2011, the class AIOFileLockManager is no longer needed and I have removed it.

(cherry picked from commit 557f02ba4d)
2017-04-12 11:07:31 -04:00
Clebert Suconic c2989e1742 ARTEMIS-1056 Removing PartialPooledByteBufAllocator 2017-04-03 12:56:21 +01:00
Martyn Taylor 7e4cb4d181 ARTEMIS-1084 Throw RunTime on bad Oracle table size
(cherry picked from commit 42bf845)
2017-04-03 12:12:33 +01:00
Martyn Taylor 2779ad8553 ARTEMIS-990 Dont require Perms on MQTT mngment Q
(cherry picked from commit b33fea0d7f)
2017-03-10 13:13:31 +00:00
John D. Ament 5896a2e176 [maven-release-plugin] prepare for next development iteration 2017-03-07 21:46:12 -05:00
John D. Ament 07807952a8 [maven-release-plugin] prepare release artemis-pom-1.5.4 2017-03-07 21:44:12 -05:00
Martyn Taylor fbdac0c97d ARTEMIS-1002 Use default PooledBufferAllocator in ActiveMQBuffers
(cherry picked from commit dc40f60e6b)
2017-02-27 14:24:04 -05:00
Erich Duda a4b33bb33a ARTEMIS-995 Bulk of test fixes
This commit fixes tests:
 ActiveMQScheduledComponentTest.testAccumulationOwnPool
 PendingDeliveriesTest.testWithtReconnect
 ReceiveTest.testReceiveImmediate
 ActiveMQProducerResourceTest.testSendString
 EmbeddedActiveMQResourceTest.testSendString
 MultipleEmbeddedActiveMQResourcesTest.testMultipleServers
 MultipleEmbeddedJMSResourcesTest.testMultipleServers
 ActiveMQDynamicProducerResourceWithoutAddressTest.testSendString
 ActiveMQDynamicProducerResourceWithoutAddressExceptionTest.testSendBytesToDefaultAddress
 ActiveMQDynamicProducerResourceTest.testSendString
 ActiveMQServerControlTest.testTotalMessageCount
 EmbeddedActiveMQResourceCustomConfigurationTest.testCustomConfiguration
 EmbeddedJMSResourceMultipleFileConfigurationTest.testConfiguration
 EmbeddedJMSResourceQueueTest.testPushObjectMessage
 EmbeddedJMSResourceSingleFileConfigurationTest.testConfiguration
 EmbeddedActiveMQResourceFileConfigurationTest.testConfiguredQueue
 EmbeddedJMSResourceTopicTest.testPushObjectMessage
 LargeMessageFailoverTest.testTimeoutOnFailoverTransactionCommit

(cherry picked from commit 0c64cbfa4e)
2017-02-24 17:17:21 +01:00
Clebert Suconic 20d627f2b7 ARTEMIS-989 fixing test after cherry-picking 2017-02-23 17:06:37 -05:00
Justin Bertram 4ddd969ffc ARTEMIS-989 JMS2 context support custom session modes
(cherry picked from commit 0b829558b3)
2017-02-23 11:42:21 -05:00
Martyn Taylor f082185d7f ARTEMIS-974 ensure will messages are retained
(cherry picked from commit 5a235d98b6)
2017-02-16 20:15:12 +00:00