Merge branch 'ignite-5578' into ignite-5578-debug # Conflicts: # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b9f041f7 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b9f041f7 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b9f041f7 Branch: refs/heads/ignite-5578-debug Commit: b9f041f758d97033e0788c1338501071d71e4291 Parents: 80e009f 6e61835 Author: sboikov <sboi...@gridgain.com> Authored: Wed Aug 2 13:37:58 2017 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Wed Aug 2 13:37:58 2017 +0300 ---------------------------------------------------------------------- .../ignite/tests/utils/TestTransaction.java | 10 + modules/core/pom.xml | 7 - .../affinity/GridAffinityAssignmentCache.java | 8 - .../cache/CacheAffinitySharedManager.java | 58 +- .../processors/cache/ExchangeContext.java | 4 +- .../processors/cache/GridCacheMapEntry.java | 3 + .../GridCachePartitionExchangeManager.java | 4 +- .../processors/cache/GridCacheProcessor.java | 2 +- .../cache/GridCacheSharedContext.java | 24 + .../dht/GridClientPartitionTopology.java | 40 +- .../dht/GridDhtPartitionTopology.java | 8 +- .../dht/GridDhtPartitionTopologyImpl.java | 66 +- .../distributed/dht/GridDhtTxPrepareFuture.java | 25 +- .../GridDhtPartitionsAbstractMessage.java | 11 +- .../GridDhtPartitionsExchangeFuture.java | 68 +- .../preloader/GridDhtPartitionsFullMessage.java | 7 +- .../GridDhtPartitionsSingleMessage.java | 16 +- .../distributed/near/GridNearCacheEntry.java | 2 +- .../cache/distributed/near/GridNearTxLocal.java | 51 ++ .../near/GridNearTxPrepareRequest.java | 8 +- .../cache/query/GridCacheQueryManager.java | 3 +- .../store/GridCacheStoreManagerAdapter.java | 10 + .../cache/transactions/IgniteTxAdapter.java | 20 +- .../cache/transactions/IgniteTxManager.java | 77 +- .../cache/transactions/IgniteTxMap.java | 2 +- .../transactions/TransactionProxyImpl.java | 46 +- .../processors/job/GridJobProcessor.java | 5 + .../rest/handlers/redis/package-info.java | 22 + .../ignite/internal/util/IgniteUtils.java | 4 +- .../apache/ignite/transactions/Transaction.java | 14 + .../ignite/transactions/TransactionState.java | 7 +- ...CacheExchangeMessageDuplicatedStateTest.java | 3 - .../distributed/CacheExchangeMergeTest.java | 13 +- .../CacheLateAffinityAssignmentTest.java | 18 +- ...teCacheClientNodePartitionsExchangeTest.java | 6 +- ...ptimisticTxSuspendResumeMultiServerTest.java | 30 + .../IgniteOptimisticTxSuspendResumeTest.java | 751 +++++++++++++++++++ .../IgnitePessimisticTxSuspendResumeTest.java | 91 +++ .../IgniteRejectConnectOnNodeStopTest.java | 7 +- .../internal/util/IgniteUtilsSelfTest.java | 26 + .../ignite/testframework/GridTestUtils.java | 26 + .../testframework/junits/GridAbstractTest.java | 3 +- .../cache/GridAbstractCacheStoreSelfTest.java | 10 + .../testsuites/IgniteCacheTestSuite6.java | 7 + .../processors/cache/jta/CacheJtaManager.java | 5 +- .../processors/cache/jta/CacheJtaResource.java | 28 +- .../GridJtaTransactionManagerSelfTest.java | 208 +++++ .../ignite/testsuites/IgniteJtaTestSuite.java | 3 + 48 files changed, 1693 insertions(+), 174 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/b9f041f7/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/b9f041f7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/b9f041f7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java index 8982bee,9851be8..a6f5527 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java @@@ -1279,20 -1282,7 +1289,20 @@@ public class GridDhtPartitionTopologyIm node2part = partMap; + if ("default".equals(grp.cacheOrGroupName())) { + for (Map.Entry<UUID, GridDhtPartitionMap> e : node2part.entrySet()) { + GridDhtPartitionMap parts = e.getValue(); + + assert parts.nodeId().equals(e.getKey()); + + String msg = "update full " + parts.nodeId() + " " + exchangeResVer; + + for (Integer p : parts.keySet()) + TestDebugLog.addPartMessage(p, parts.get(p), msg); + } + } + - if (readyTopVer.initialized() && readyTopVer.compareTo(diffFromAffinityVer) >= 0) { + if (exchangeVer == null && (readyTopVer.initialized() && readyTopVer.compareTo(diffFromAffinityVer) >= 0)) { AffinityAssignment affAssignment = grp.affinity().readyAffinity(readyTopVer); for (Map.Entry<UUID, GridDhtPartitionMap> e : partMap.entrySet()) { http://git-wip-us.apache.org/repos/asf/ignite/blob/b9f041f7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java index 576d2bc,03d99fc..1d2eec3 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java @@@ -1511,10 -1510,8 +1511,10 @@@ public final class GridDhtTxPrepareFutu try { List<ClusterNode> dhtNodes = dht.topology().nodes(cached.partition(), tx.topologyVersion()); - assert dhtNodes.size() > 0 && dhtNodes.get(0).id().equals(cctx.localNodeId()) : dhtNodes; + assert !dhtNodes.isEmpty() && dhtNodes.get(0).id().equals(cctx.localNodeId()) : dhtNodes; + TestDebugLog.addEntryMessage(cached.key().value(null, false), U.nodeIds(dhtNodes), "dht mapped"); + if (log.isDebugEnabled()) log.debug("Mapping entry to DHT nodes [nodes=" + U.toShortString(dhtNodes) + ", entry=" + entry + ']');