Repository: ignite
Updated Branches:
  refs/heads/ignite-3477 eda245b86 -> c875221a4


ignite-db-x  fix rebalance npe, index tree npe


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/26000caa
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/26000caa
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/26000caa

Branch: refs/heads/ignite-3477
Commit: 26000caa83b92d43ce14fd53f7802e9802a7670c
Parents: b9826ef
Author: Dmitriy Govorukhin <[email protected]>
Authored: Mon Jan 23 18:33:14 2017 +0300
Committer: Dmitriy Govorukhin <[email protected]>
Committed: Mon Jan 23 18:33:14 2017 +0300

----------------------------------------------------------------------
 .../atomic/GridNearAtomicSingleUpdateFuture.java  |  2 +-
 .../dht/preloader/GridDhtPartitionDemander.java   | 18 +++++-------------
 .../cache/transactions/IgniteTxHandler.java       |  9 ++++++---
 .../processors/query/h2/database/H2TreeIndex.java |  2 +-
 4 files changed, 13 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/26000caa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
index 1f421c9..5261e34 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
@@ -208,7 +208,7 @@ public class GridNearAtomicSingleUpdateFuture extends 
GridNearAtomicAbstractUpda
             if (!res.futureVersion().equals(futVer))
                 return;
 
-            if (!this.req.nodeId().equals(nodeId))
+            if (this.req == null || !this.req.nodeId().equals(nodeId))
                 return;
 
             req = this.req;

http://git-wip-us.apache.org/repos/asf/ignite/blob/26000caa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
index d2efd24..204e4da 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
@@ -452,23 +452,15 @@ public class GridDhtPartitionDemander {
         for (Map.Entry<ClusterNode, GridDhtPartitionDemandMessage> e : 
assigns.entrySet()) {
             final ClusterNode node = e.getKey();
 
-            GridDhtPartitionDemandMessage d = e.getValue();
+            final GridDhtPartitionDemandMessage d = e.getValue();
 
-            fut.appendPartitions(node.id(), d.partitions()); //Future 
preparation.
-        }
-
-        for (Map.Entry<ClusterNode, GridDhtPartitionDemandMessage> e : 
assigns.entrySet()) {
-            final ClusterNode node = e.getKey();
-
-            final CacheConfiguration cfg = cctx.config();
-
-            final Collection<Integer> parts = 
fut.remaining.get(node.id()).get2();
+            final Collection<Integer> parts = d.partitions();
 
-            GridDhtPartitionDemandMessage d = e.getValue();
+            fut.appendPartitions(node.id(), parts);
 
             //Check remote node rebalancing API version.
             if 
(node.version().compareTo(GridDhtPreloader.REBALANCING_VER_2_SINCE) >= 0) {
-                U.log(log, "Starting rebalancing [mode=" + 
cfg.getRebalanceMode() +
+                U.log(log, "Starting rebalancing [mode=" + 
cctx.config().getRebalanceMode() +
                     ", fromNode=" + node.id() + ", partitionsCount=" + 
parts.size() +
                     ", topology=" + fut.topologyVersion() + ", updateSeq=" + 
fut.updateSeq + "]");
 
@@ -513,7 +505,7 @@ public class GridDhtPartitionDemander {
             }
             else {
                 U.log(log, "Starting rebalancing (old api) [cache=" + 
cctx.name() +
-                    ", mode=" + cfg.getRebalanceMode() +
+                    ", mode=" + cctx.config().getRebalanceMode() +
                     ", fromNode=" + node.id() +
                     ", partitionsCount=" + parts.size() +
                     ", topology=" + fut.topologyVersion() +

http://git-wip-us.apache.org/repos/asf/ignite/blob/26000caa/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 240e9c9..ba2ab3c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -675,15 +675,18 @@ public class IgniteTxHandler {
      * @param req Request.
      * @return Future.
      */
-    @Nullable private IgniteInternalFuture<IgniteInternalTx> 
processNearTxFinishRequest(UUID nodeId,
-        GridNearTxFinishRequest req) {
+    @Nullable private IgniteInternalFuture<IgniteInternalTx> 
processNearTxFinishRequest(
+        UUID nodeId,
+        GridNearTxFinishRequest req
+    ) {
         if (txFinishMsgLog.isDebugEnabled())
             txFinishMsgLog.debug("Received near finish request [txId=" + 
req.version() + ", node=" + nodeId + ']');
 
         IgniteInternalFuture<IgniteInternalTx> fut = finish(nodeId, null, req);
 
         assert req.txState() != null || (fut != null && fut.error() != null) ||
-            (ctx.tm().tx(req.version()) == null && 
ctx.tm().nearTx(req.version()) == null);
+            (ctx.tm().tx(req.version()) == null && 
ctx.tm().nearTx(req.version()) == null) :
+            "[req=" + req + ", fut=" + fut + "]";
 
         return fut;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/26000caa/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
index 19cbbf9..f82746f 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
@@ -199,7 +199,7 @@ public class H2TreeIndex extends GridH2IndexBase {
     /** {@inheritDoc} */
     @Override public void destroy() {
         try {
-            if (!cctx.kernalContext().clientNode()) {
+            if (cctx.affinityNode()) {
                 tree.destroy();
 
                 cctx.offheap().dropRootPageForIndex(tree.getName());

Reply via email to