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());
