Return-Path: X-Original-To: apmail-ignite-commits-archive@minotaur.apache.org Delivered-To: apmail-ignite-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 542B618039 for ; Thu, 16 Jul 2015 14:09:25 +0000 (UTC) Received: (qmail 90094 invoked by uid 500); 16 Jul 2015 14:09:25 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 90062 invoked by uid 500); 16 Jul 2015 14:09:25 -0000 Mailing-List: contact commits-help@ignite.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.incubator.apache.org Delivered-To: mailing list commits@ignite.incubator.apache.org Received: (qmail 90053 invoked by uid 99); 16 Jul 2015 14:09:25 -0000 Received: from Unknown (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 16 Jul 2015 14:09:25 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id C3D6E181A37 for ; Thu, 16 Jul 2015 14:09:24 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.771 X-Spam-Level: * X-Spam-Status: No, score=1.771 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id Ic_PKC98w8zT for ; Thu, 16 Jul 2015 14:09:22 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with SMTP id 3659F24D0F for ; Thu, 16 Jul 2015 14:09:17 +0000 (UTC) Received: (qmail 89225 invoked by uid 99); 16 Jul 2015 14:09:17 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 16 Jul 2015 14:09:17 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id E4F5CE6812; Thu, 16 Jul 2015 14:09:16 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sboikov@apache.org To: commits@ignite.incubator.apache.org Date: Thu, 16 Jul 2015 14:09:23 -0000 Message-Id: <73d7bc912a504f6fb94439d2c5d9c9c2@git.apache.org> In-Reply-To: <6ab8071eb31f4a8eb9965469c55ceb37@git.apache.org> References: <6ab8071eb31f4a8eb9965469c55ceb37@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [08/21] 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-1124 Commit: cddbed5c33c791650f719df4def07287b1092c2a Parents: e25d5b1 Author: Denis Magda Authored: Mon Jul 13 16:50:06 2015 +0300 Committer: Denis Magda 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 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); }