Repository: ignite Updated Branches: refs/heads/ignite-1758 b0329c04d -> f96781d8b
ignite-1758 debug Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f96781d8 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f96781d8 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f96781d8 Branch: refs/heads/ignite-1758 Commit: f96781d8bec83a5425799e78652a7fc17f83d0ba Parents: b0329c0 Author: sboikov <sboi...@gridgain.com> Authored: Mon Nov 9 13:37:09 2015 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Mon Nov 9 13:37:09 2015 +0300 ---------------------------------------------------------------------- .../ignite/spi/discovery/tcp/ServerImpl.java | 49 +++++++++++--------- .../messages/TcpDiscoveryAbstractMessage.java | 15 ++++-- 2 files changed, 39 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/f96781d8/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 931a33f..5db1e34 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 @@ -2141,6 +2141,27 @@ class ServerImpl extends TcpDiscoveryImpl { log.debug("Connection check frequency is calculated: " + connCheckFreq); } + private void addMessageFailedNodes(TcpDiscoveryAbstractMessage msg) { + if (msg.failedNodes() != null) { + for (UUID nodeId : msg.failedNodes()) { + TcpDiscoveryNode failedNode = ring.node(nodeId); + + if (failedNode != null) { + boolean add; + + synchronized (mux) { + add = failedNodes.add(failedNode); + } + + if (add) + debugLog(null, "New failed node [node=" + failedNode + ", msg=" + msg + ']'); + } + else + debugLog(null, "Unknown failed node [nodeId=" + nodeId + ", msg=" + msg + ']'); + } + } + } + /** * @param msg Message to process. */ @@ -2154,22 +2175,7 @@ class ServerImpl extends TcpDiscoveryImpl { spi.stats.onMessageProcessingStarted(msg); - if (msg.failedNodes() != null) { - for (UUID nodeId : msg.failedNodes()) { - TcpDiscoveryNode failedNode = ring.node(nodeId); - - if (failedNode != null) { - boolean add; - - synchronized (mux) { - add = failedNodes.add(failedNode); - } - - if (add) - debugLog(null, "New failed node [node=" + failedNode + ", msg=" + msg + ']'); - } - } - } + addMessageFailedNodes(msg); if (msg instanceof TcpDiscoveryJoinRequestMessage) processJoinRequestMessage((TcpDiscoveryJoinRequestMessage)msg); @@ -2600,12 +2606,11 @@ class ServerImpl extends TcpDiscoveryImpl { timeoutHelper = new IgniteSpiOperationTimeoutHelper(spi); if (!failedNodes.isEmpty()) { - List<UUID> failedNodeIds = new ArrayList<>(failedNodes.size()); - - for (TcpDiscoveryNode node : failedNodes) - failedNodeIds.add(node.id()); + for (TcpDiscoveryNode node : failedNodes) { + debugLog(null, "Add failed node [node=" + node + ", msg=" + msg + ']'); - msg.failedNodes(failedNodeIds); + msg.addFailedNode(node); + } } writeToSocket(sock, msg, timeoutHelper.nextTimeoutChunk(spi.getSocketTimeout())); @@ -3583,6 +3588,8 @@ class ServerImpl extends TcpDiscoveryImpl { for (Map.Entry<UUID, Map<Integer, byte[]>> entry : dataMap.entrySet()) spi.onExchange(node.id(), entry.getKey(), entry.getValue(), U.gridClassLoader()); } + + addMessageFailedNodes(msg); } if (sendMessageToRemotes(msg)) http://git-wip-us.apache.org/repos/asf/ignite/blob/f96781d8/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java index 66f5209..ae9d696 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryAbstractMessage.java @@ -20,12 +20,14 @@ package org.apache.ignite.spi.discovery.tcp.messages; import java.io.Externalizable; import java.io.Serializable; import java.util.Collection; -import java.util.List; +import java.util.HashSet; +import java.util.Set; import java.util.UUID; import org.apache.ignite.internal.util.tostring.GridToStringExclude; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.lang.IgniteUuid; +import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode; import org.jetbrains.annotations.Nullable; /** @@ -68,7 +70,7 @@ public abstract class TcpDiscoveryAbstractMessage implements Serializable { /** */ @GridToStringInclude - private Collection<UUID> failedNodes; + private Set<UUID> failedNodes; /** * Default no-arg constructor for {@link Externalizable} interface. @@ -244,8 +246,13 @@ public abstract class TcpDiscoveryAbstractMessage implements Serializable { return false; } - public void failedNodes(Collection<UUID> failedNodes) { - this.failedNodes = failedNodes; + public void addFailedNode(TcpDiscoveryNode node) { + assert node != null; + + if (failedNodes == null) + failedNodes = new HashSet<>(); + + failedNodes.add(node.id()); } @Nullable public Collection<UUID> failedNodes() {