You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/09/23 15:26:44 UTC
[10/24] ignite git commit: Client discovery: wait during join if
receive RES_CONTINUE_JOIN, RES_WAIT.
Client discovery: wait during join if receive RES_CONTINUE_JOIN, RES_WAIT.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c1372ce2
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c1372ce2
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c1372ce2
Branch: refs/heads/ignite-comm-opts2
Commit: c1372ce2f0633968036fcfb079718214605c3350
Parents: 780bf23
Author: sboikov <sb...@gridgain.com>
Authored: Tue Sep 20 11:39:37 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Sep 20 11:39:37 2016 +0300
----------------------------------------------------------------------
.../ignite/spi/discovery/tcp/ClientImpl.java | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c1372ce2/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 bf7f519..2c85645 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
@@ -497,6 +497,8 @@ class ClientImpl extends TcpDiscoveryImpl {
Iterator<InetSocketAddress> it = addrs.iterator();
+ boolean wait = false;
+
while (it.hasNext()) {
if (Thread.currentThread().isInterrupted())
throw new InterruptedException();
@@ -515,12 +517,17 @@ class ClientImpl extends TcpDiscoveryImpl {
Socket sock = sockAndRes.get1().socket();
+ if (log.isDebugEnabled())
+ log.debug("Received response to join request [addr=" + addr + ", res=" + sockAndRes.get2() + ']');
+
switch (sockAndRes.get2()) {
case RES_OK:
return new T2<>(sockAndRes.get1(), sockAndRes.get3());
case RES_CONTINUE_JOIN:
case RES_WAIT:
+ wait = true;
+
U.closeQuiet(sock);
break;
@@ -533,7 +540,16 @@ class ClientImpl extends TcpDiscoveryImpl {
}
}
- if (addrs.isEmpty()) {
+ if (wait) {
+ if (timeout > 0 && (U.currentTimeMillis() - startTime) > timeout)
+ return null;
+
+ if (log.isDebugEnabled())
+ log.debug("Will wait before retry join.");
+
+ Thread.sleep(2000);
+ }
+ else if (addrs.isEmpty()) {
if (timeout > 0 && (U.currentTimeMillis() - startTime) > timeout)
return null;