You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by is...@apache.org on 2018/10/09 14:47:20 UTC
[05/21] ignite git commit: Merge branch 'ignite-2.7' into
ignite-2.7-master
Merge branch 'ignite-2.7' into ignite-2.7-master
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a35dac25
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a35dac25
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a35dac25
Branch: refs/heads/ignite-2.7-master
Commit: a35dac25c996e3fd6ddbe159217d50d5218c30a7
Parents: 60a8c8c beb7eb0
Author: devozerov <vo...@gridgain.com>
Authored: Thu Oct 4 11:33:10 2018 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Thu Oct 4 11:33:10 2018 +0300
----------------------------------------------------------------------
DEVNOTES.txt | 14 +-
README.txt | 4 +-
RELEASE_NOTES.txt | 76 ++---
bin/ignite.bat | 48 ++-
bin/ignite.sh | 37 +-
bin/include/functions.sh | 5 -
doap_Ignite.rdf | 4 +-
.../JdbcThinConnectionMvccEnabledSelfTest.java | 8 +-
.../jdbc/thin/JdbcThinTransactionsSelfTest.java | 4 +-
...ThinTransactionsWithMvccEnabledSelfTest.java | 15 +-
.../ignite/codegen/MessageCodeGenerator.java | 1 +
.../communication/GridIoMessageFactory.java | 10 +-
.../processors/cache/CacheInvokeEntry.java | 45 ++-
.../processors/cache/GridCacheEntryEx.java | 10 +
.../processors/cache/GridCacheMapEntry.java | 108 +++++-
.../processors/cache/GridCacheProcessor.java | 33 ++
.../cache/GridCacheUpdateTxResult.java | 27 +-
.../cache/IgniteCacheOffheapManager.java | 11 +-
.../cache/IgniteCacheOffheapManagerImpl.java | 104 +++++-
.../dht/GridDhtTxAbstractEnlistFuture.java | 35 +-
.../distributed/dht/GridDhtTxEnlistFuture.java | 22 +-
.../dht/GridDhtTxQueryEnlistRequest.java | 8 +-
.../cache/distributed/dht/GridDhtTxRemote.java | 18 +-
.../cache/distributed/dht/GridInvokeValue.java | 186 ++++++++++
.../dht/GridPartitionedGetFuture.java | 3 +-
.../dht/GridPartitionedSingleGetFuture.java | 3 +-
.../dht/colocated/GridDhtColocatedCache.java | 5 +-
.../near/GridNearTxEnlistFuture.java | 19 +-
.../near/GridNearTxEnlistRequest.java | 35 +-
.../cache/distributed/near/GridNearTxLocal.java | 55 +--
.../cache/mvcc/MvccProcessorImpl.java | 31 +-
.../persistence/GridCacheOffheapManager.java | 5 +-
.../cache/tree/mvcc/data/MvccUpdateDataRow.java | 29 +-
.../cache/tree/mvcc/data/MvccUpdateResult.java | 7 +
.../cache/tree/mvcc/data/ResultType.java | 4 +-
.../processors/query/EnlistOperation.java | 11 +-
.../AuthenticationProcessorNodeRestartTest.java | 340 +++++++++----------
.../cache/GridCacheAbstractMetricsSelfTest.java | 46 +--
.../processors/cache/GridCacheTestEntryEx.java | 8 +-
.../IgniteCacheTxIteratorSelfTest.java | 2 +-
.../cache/mvcc/CacheMvccAbstractTest.java | 10 +-
.../CacheMvccConfigurationValidationTest.java | 287 +++++++---------
.../cache/mvcc/CacheMvccTransactionsTest.java | 87 ++++-
.../persistence/wal/aware/SegmentAwareTest.java | 38 +++
.../DataStreamProcessorMvccSelfTest.java | 40 +--
...sactionsCommandsWithMvccEnabledSelfTest.java | 27 --
.../mvcc/CacheMvccSqlQueriesAbstractTest.java | 2 +-
.../mvcc/MvccRepeatableReadBulkOpsTest.java | 261 ++++++++++++--
.../mvcc/MvccRepeatableReadOperationsTest.java | 42 ++-
.../ignite/mesos/resource/IgniteProvider.java | 4 +-
modules/platforms/cpp/core/namespaces.dox | 2 +-
.../Cache/DataRegionMetricsTest.cs | 2 +-
.../Cache/MemoryMetricsTest.cs | 2 +-
.../rest/protocols/http/jetty/rest.html | 4 +-
.../org/apache/ignite/yarn/IgniteProvider.java | 6 +-
parent/pom.xml | 4 +-
56 files changed, 1548 insertions(+), 706 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a35dac25/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/aware/SegmentAwareTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/aware/SegmentAwareTest.java
index 0869356,c1948c7..b50c9eb
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/aware/SegmentAwareTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/aware/SegmentAwareTest.java
@@@ -31,47 -31,46 +31,85 @@@ import static org.junit.Assert.assertTh
* Test for {@link SegmentAware}.
*/
public class SegmentAwareTest extends TestCase {
+ /**
+ * Checking to avoid deadlock SegmentArchivedStorage.markAsMovedToArchive -> SegmentLockStorage.locked <->
+ * SegmentLockStorage.releaseWorkSegment -> SegmentArchivedStorage.onSegmentUnlocked
+ *
+ * @throws IgniteCheckedException if failed.
+ */
+ public void testAvoidDeadlockArchiverAndLockStorage() throws IgniteCheckedException {
+ SegmentAware aware = new SegmentAware(10);
+
+ int iterationCnt = 100_000;
+ int segmentToHandle = 1;
+
+ IgniteInternalFuture archiverThread = GridTestUtils.runAsync(() -> {
+ int i = iterationCnt;
+
+ while (i-- > 0) {
+ try {
+ aware.markAsMovedToArchive(segmentToHandle);
+ }
+ catch (IgniteInterruptedCheckedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ });
+
+ IgniteInternalFuture lockerThread = GridTestUtils.runAsync(() -> {
+ int i = iterationCnt;
+
+ while (i-- > 0) {
+ aware.lockWorkSegment(segmentToHandle);
+
+ aware.releaseWorkSegment(segmentToHandle);
+ }
+ });
+
+ archiverThread.get();
+ lockerThread.get();
+ }
/**
+ * Checking to avoid deadlock SegmentArchivedStorage.markAsMovedToArchive -> SegmentLockStorage.locked <->
+ * SegmentLockStorage.releaseWorkSegment -> SegmentArchivedStorage.onSegmentUnlocked
+ *
+ * @throws IgniteCheckedException if failed.
+ */
+ public void testAvoidDeadlockArchiverAndLockStorage() throws IgniteCheckedException {
+ SegmentAware aware = new SegmentAware(10, false);
+
+ int iterationCnt = 100_000;
+ int segmentToHandle = 1;
+
+ IgniteInternalFuture archiverThread = GridTestUtils.runAsync(() -> {
+ int i = iterationCnt;
+
+ while (i-- > 0) {
+ try {
+ aware.markAsMovedToArchive(segmentToHandle);
+ }
+ catch (IgniteInterruptedCheckedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ });
+
+ IgniteInternalFuture lockerThread = GridTestUtils.runAsync(() -> {
+ int i = iterationCnt;
+
+ while (i-- > 0) {
+ aware.lockWorkSegment(segmentToHandle);
+
+ aware.releaseWorkSegment(segmentToHandle);
+ }
+ });
+
+ archiverThread.get();
+ lockerThread.get();
+ }
+
+ /**
* Waiting finished when work segment is set.
*/
public void testFinishAwaitSegment_WhenExactWaitingSegmentWasSet() throws IgniteCheckedException, InterruptedException {