You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2015/07/20 11:07:33 UTC

[08/30] incubator-ignite git commit: ignite-890: fixing

ignite-890: fixing


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

Branch: refs/heads/ignite-630
Commit: cddbed5c33c791650f719df4def07287b1092c2a
Parents: e25d5b1
Author: Denis Magda <dm...@gridgain.com>
Authored: Mon Jul 13 16:50:06 2015 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Mon Jul 13 16:50:06 2015 +0300

----------------------------------------------------------------------
 .../communication/tcp/TcpCommunicationSpi.java  | 27 +++++++++++++++++---
 .../ignite/spi/discovery/tcp/ClientImpl.java    |  8 +++++-
 .../messages/TcpDiscoveryNodeFailedMessage.java |  1 +
 .../tcp/TcpDiscoveryMultiThreadedTest.java      |  6 +++--
 .../testframework/junits/GridAbstractTest.java  |  3 ++-
 5 files changed, 37 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cddbed5c/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index 4ca2995..f62cdd4 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -1728,8 +1728,8 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
             GridCommunicationClient client = clients.get(nodeId);
 
             if (client == null) {
-                if (isNodeStopping())
-                    throw new IgniteSpiException("Node is stopping.");
+                //if (isNodeStopping())
+                //    throw new IgniteSpiException("Node is stopping.");
 
                 // Do not allow concurrent connects.
                 GridFutureAdapter<GridCommunicationClient> fut = new ConnectFuture();
@@ -1899,6 +1899,9 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
                 }
             }
             catch (IgniteCheckedException | RuntimeException | Error e) {
+                if (!getSpiContext().localNode().isClient() && node.isClient())
+                    getSpiContext().tryFailNode(node.id(), "Killing client");
+
                 if (log.isDebugEnabled())
                     log.debug(
                         "Caught exception (will close client) [err=" + e.getMessage() + ", client=" + client + ']');
@@ -2097,6 +2100,9 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
                     }
                 }
                 catch (Exception e) {
+                    if (!getSpiContext().localNode().isClient() && node.isClient())
+                        getSpiContext().tryFailNode(node.id(), "Killing client");
+
                     if (client != null) {
                         client.forceClose();
 
@@ -2200,7 +2206,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
                     UUID rmtNodeId0 = U.bytesToUuid(buf.array(), 1);
 
                     if (!rmtNodeId.equals(rmtNodeId0))
-                        throw new IgniteCheckedException("Remote node ID is not as expected [expected=" + rmtNodeId +
+                        throw new HandshakeFailureException("Remote node ID is not as expected [expected=" + rmtNodeId +
                             ", rcvd=" + rmtNodeId0 + ']');
                     else if (log.isDebugEnabled())
                         log.debug("Received remote node ID: " + rmtNodeId0);
@@ -2242,7 +2248,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
                             int read = ch.read(buf);
 
                             if (read == -1)
-                                throw new IgniteCheckedException("Failed to read remote node recovery handshake " +
+                                throw new HandshakeFailureException("Failed to read remote node recovery handshake " +
                                     "(connection closed).");
 
                             i += read;
@@ -2421,6 +2427,19 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
         }
     }
 
+    /** Internal exception class for handshake failure handling. */
+    private static class HandshakeFailureException extends IgniteCheckedException {
+        /** */
+        private static final long serialVersionUID = 0L;
+
+        /**
+         * @param msg Message.
+         */
+        HandshakeFailureException(String msg) {
+            super(msg);
+        }
+    }
+
     /**
      * This worker takes responsibility to shut the server down when stopping,
      * No other thread shall stop passed server.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cddbed5c/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
index d138a6a..bb8d52d 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
@@ -1134,14 +1134,18 @@ class ClientImpl extends TcpDiscoveryImpl {
                         assert spi.getSpiContext().isStopping();
 
                         if (currSock != null) {
+                            System.out.println("Sending node left msg: " + getLocalNodeId());
+
                             TcpDiscoveryAbstractMessage leftMsg = new TcpDiscoveryNodeLeftMessage(getLocalNodeId());
 
                             leftMsg.client(true);
 
                             sockWriter.sendMessage(leftMsg);
                         }
-                        else
+                        else {
+                            System.out.println("No connection on leave: " + getLocalNodeId());
                             leaveLatch.countDown();
+                        }
                     }
                     else if (msg instanceof SocketClosedMessage) {
                         if (((SocketClosedMessage)msg).sock == currSock) {
@@ -1174,6 +1178,8 @@ class ClientImpl extends TcpDiscoveryImpl {
                             reconnector.cancel();
                             reconnector.join();
 
+                            System.out.println("RECONNECT FAILED: sending segmentation error: " + locNode);
+
                             notifyDiscovery(EVT_NODE_SEGMENTED, topVer, locNode, allVisibleNodes());
                         }
                     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cddbed5c/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
index 93ecdaa..cd85bfd 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryNodeFailedMessage.java
@@ -51,6 +51,7 @@ public class TcpDiscoveryNodeFailedMessage extends TcpDiscoveryAbstractMessage {
     public TcpDiscoveryNodeFailedMessage(UUID creatorNodeId, UUID failedNodeId, long order) {
         super(creatorNodeId);
 
+        U.dumpStack("Failed = " + failedNodeId + ", creator=" + creatorNodeId);
         assert failedNodeId != null;
         assert order > 0;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cddbed5c/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryMultiThreadedTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryMultiThreadedTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryMultiThreadedTest.java
index cd07341..169a8b5 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryMultiThreadedTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryMultiThreadedTest.java
@@ -185,7 +185,8 @@ public class TcpDiscoveryMultiThreadedTest extends GridCommonAbstractTest {
                     int idx = clientIdx.getAndIncrement();
 
                     while (!done.get()) {
-                        assertTrue(stopGrid(idx, true));
+                        stopGrid(idx);
+                        //assertTrue(stopGrid(idx, true));
                         startGrid(idx);
                     }
 
@@ -208,7 +209,8 @@ public class TcpDiscoveryMultiThreadedTest extends GridCommonAbstractTest {
                     while (!done.get()) {
                         int idx = srvIdx.take();
 
-                        assertTrue(stopGrid(idx, true));
+                        stopGrid(idx);
+                        //assertTrue(stopGrid(idx, true));
                         startGrid(idx);
 
                         srvIdx.add(idx);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cddbed5c/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index 29d204e..f7ec124 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@ -1032,7 +1032,8 @@ public abstract class GridAbstractTest extends TestCase {
 
             assert ignite != null : "Ignite returned null grid for name: " + gridName;
 
-            info(">>> Stopping grid [name=" + ignite.name() + ", id=" + ignite.cluster().localNode().id() + ']');
+            info(">>> Stopping grid [name=" + ignite.name() + ", id=" + ignite.cluster().localNode().id() +
+                ", isClient=" + ignite.configuration().isClientMode() + ']');
 
             res = G.stop(gridName, cancel);
         }