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 E79B317A31 for ; Tue, 9 Jun 2015 12:30:21 +0000 (UTC) Received: (qmail 68562 invoked by uid 500); 9 Jun 2015 12:30:21 -0000 Delivered-To: apmail-ignite-commits-archive@ignite.apache.org Received: (qmail 68530 invoked by uid 500); 9 Jun 2015 12:30:21 -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 68466 invoked by uid 99); 9 Jun 2015 12:30:21 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Jun 2015 12:30:21 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO mail.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with SMTP; Tue, 09 Jun 2015 12:28:07 +0000 Received: (qmail 66175 invoked by uid 99); 9 Jun 2015 12:29:53 -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; Tue, 09 Jun 2015 12:29:53 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id C0DBAE022E; Tue, 9 Jun 2015 12:29:53 +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: Tue, 09 Jun 2015 12:30:06 -0000 Message-Id: <66d9ffb75f7742b7b4af5a3ae651432b@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [14/40] incubator-ignite git commit: # ignite-883 X-Virus-Checked: Checked by ClamAV on apache.org # ignite-883 Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e237b00d Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e237b00d Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e237b00d Branch: refs/heads/ignite-gg-10299 Commit: e237b00d84039383723e00929b639fa62be03de7 Parents: fb827a77 Author: sboikov Authored: Fri Jun 5 16:12:46 2015 +0300 Committer: sboikov Committed: Fri Jun 5 18:10:34 2015 +0300 ---------------------------------------------------------------------- .../util/nio/GridNioRecoveryDescriptor.java | 11 ++++++--- .../ignite/spi/discovery/tcp/ServerImpl.java | 9 ++++--- .../tcp/TcpClientDiscoverySpiSelfTest.java | 25 ++++++++++++++++++++ 3 files changed, 37 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e237b00d/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java index 08a9937..3bc81ea 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioRecoveryDescriptor.java @@ -176,9 +176,11 @@ public class GridNioRecoveryDescriptor { while (acked < rcvCnt) { GridNioFuture fut = msgFuts.pollFirst(); - assert fut != null; + assert fut != null : "Missed message future [rcvCnt=" + rcvCnt + + ", acked=" + acked + + ", desc=" + this + ']'; - assert fut.isDone(); + assert fut.isDone() : fut; acked++; } @@ -239,7 +241,10 @@ public class GridNioRecoveryDescriptor { * @param rcvCnt Number of messages received by remote node. */ public void onHandshake(long rcvCnt) { - ackReceived(rcvCnt); + synchronized (this) { + if (!nodeLeft) + ackReceived(rcvCnt); + } resendCnt = msgFuts.size(); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e237b00d/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 302b721..0270a7c 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 @@ -1752,7 +1752,7 @@ class ServerImpl extends TcpDiscoveryImpl { @Nullable Collection messages(IgniteUuid lastMsgId) { assert lastMsgId != null; - Collection copy = new ArrayList<>(msgs.size()); + Collection cp = new ArrayList<>(msgs.size()); boolean skip = true; @@ -1762,10 +1762,10 @@ class ServerImpl extends TcpDiscoveryImpl { skip = false; } else - copy.add(msg); + cp.add(msg); } - return !skip ? copy : null; + return !skip ? cp : null; } /** @@ -2704,8 +2704,7 @@ class ServerImpl extends TcpDiscoveryImpl { node.aliveCheck(spi.maxMissedClientHbs); if (isLocalNodeCoordinator()) { - Collection pending = - pendingMsgs.messages(msg.lastMessageId()); + Collection pending = pendingMsgs.messages(msg.lastMessageId()); if (pending != null) { msg.pendingMessages(pending); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e237b00d/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java index f7be340..7333020 100644 --- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java @@ -469,6 +469,31 @@ public class TcpClientDiscoverySpiSelfTest extends GridCommonAbstractTest { /** * @throws Exception If failed. */ + public void testClientReconnectOneServerOneClient() throws Exception { + clientsPerSrv = 1; + + startServerNodes(1); + startClientNodes(1); + + checkNodes(1, 1); + + srvLeftLatch = new CountDownLatch(1); + srvFailedLatch = new CountDownLatch(1); + + attachListeners(1, 0); + + ((TcpDiscoverySpi)G.ignite("client-0").configuration().getDiscoverySpi()).brakeConnection(); + + assertFalse(srvFailedLatch.await(2000, TimeUnit.MILLISECONDS)); + + assertEquals(1L, srvLeftLatch.getCount()); + + checkNodes(1, 1); + } + + /** + * @throws Exception If failed. + */ public void testGetMissedMessagesOnReconnect() throws Exception { clientsPerSrv = 1;