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

Reply via email to