merge from ignite-882
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9314a68e Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9314a68e Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9314a68e Branch: refs/heads/ignite-929 Commit: 9314a68e31f1b449665a26335868e39478ff2f98 Parents: 96c9695 Author: Denis Magda <dma...@gridgain.com> Authored: Tue Jul 7 14:13:19 2015 +0300 Committer: Denis Magda <dma...@gridgain.com> Committed: Tue Jul 7 14:13:19 2015 +0300 ---------------------------------------------------------------------- .../ignite/spi/discovery/tcp/ServerImpl.java | 26 ++++++++++++++++++++ .../GridCachePartitionedNodeRestartTest.java | 5 ---- ...ePartitionedOptimisticTxNodeRestartTest.java | 2 +- .../GridCacheReplicatedFailoverSelfTest.java | 5 ---- .../GridCacheReplicatedNodeRestartSelfTest.java | 5 ---- 5 files changed, 27 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9314a68e/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java index 94a2290..f8fae34 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java @@ -2076,6 +2076,9 @@ class ServerImpl extends TcpDiscoveryImpl { boolean nextNew = (msg instanceof TcpDiscoveryNodeAddedMessage && ((TcpDiscoveryNodeAddedMessage)msg).node().id().equals(nextId)); + if (!nextNew) + nextNew = hasPendingAddMessage(nextId); + if (!nextNew) { if (log.isDebugEnabled()) log.debug("Failed to restore ring because next node order received " + @@ -2364,6 +2367,29 @@ class ServerImpl extends TcpDiscoveryImpl { } /** + * Checks whether pending messages queue contains unprocessed {@link TcpDiscoveryNodeAddedMessage} for + * the node with {@code nodeId}. + * + * @param nodeId Node ID. + * @return {@code true} if contains, {@code false} otherwise. + */ + private boolean hasPendingAddMessage(UUID nodeId) { + if (pendingMsgs.msgs.isEmpty()) + return false; + + for (TcpDiscoveryAbstractMessage pendingMsg : pendingMsgs.msgs) { + if (pendingMsg instanceof TcpDiscoveryNodeAddedMessage) { + TcpDiscoveryNodeAddedMessage addMsg = (TcpDiscoveryNodeAddedMessage)pendingMsg; + + if (addMsg.node().id().equals(nodeId) && addMsg.id().compareTo(pendingMsgs.discardId) > 0) + return true; + } + } + + return false; + } + + /** * Processes join request message. * * @param msg Join request message. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9314a68e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedNodeRestartTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedNodeRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedNodeRestartTest.java index 9529f9d..2096836 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedNodeRestartTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedNodeRestartTest.java @@ -30,11 +30,6 @@ import static org.apache.ignite.transactions.TransactionConcurrency.*; */ public class GridCachePartitionedNodeRestartTest extends GridCacheAbstractNodeRestartSelfTest { /** {@inheritDoc} */ - @Override protected void beforeTest() throws Exception { - fail("https://issues.apache.org/jira/browse/IGNITE-882"); - } - - /** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { IgniteConfiguration c = super.getConfiguration(gridName); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9314a68e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java index 62cc6b1..2d8f431 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java @@ -32,7 +32,7 @@ import static org.apache.ignite.transactions.TransactionConcurrency.*; public class GridCachePartitionedOptimisticTxNodeRestartTest extends GridCacheAbstractNodeRestartSelfTest { /** {@inheritDoc} */ @Override protected void beforeTest() throws Exception { - fail("https://issues.apache.org/jira/browse/IGNITE-882"); + fail("https://issues.apache.org/jira/browse/IGNITE-1090"); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9314a68e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedFailoverSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedFailoverSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedFailoverSelfTest.java index 4269ea6..3461dd4 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedFailoverSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedFailoverSelfTest.java @@ -28,11 +28,6 @@ import static org.apache.ignite.cache.CacheMode.*; */ public class GridCacheReplicatedFailoverSelfTest extends GridCacheAbstractFailoverTxSelfTest { /** {@inheritDoc} */ - @Override protected void beforeTest() throws Exception { - fail("https://issues.apache.org/jira/browse/IGNITE-882"); - } - - /** {@inheritDoc} */ @Override protected CacheMode cacheMode() { return REPLICATED; } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9314a68e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedNodeRestartSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedNodeRestartSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedNodeRestartSelfTest.java index dfdfd7e..8ce96cd 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedNodeRestartSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedNodeRestartSelfTest.java @@ -29,11 +29,6 @@ import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*; */ public class GridCacheReplicatedNodeRestartSelfTest extends GridCacheAbstractNodeRestartSelfTest { /** {@inheritDoc} */ - @Override protected void beforeTest() throws Exception { - fail("https://issues.apache.org/jira/browse/IGNITE-882"); - } - - /** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { IgniteConfiguration c = super.getConfiguration(gridName);