sergey-chugunov-1985 commented on code in PR #12504:
URL: https://github.com/apache/ignite/pull/12504#discussion_r2525888748


##########
modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java:
##########
@@ -6833,8 +6834,23 @@ else if (log.isDebugEnabled())
                     TcpDiscoveryHandshakeResponse res =
                         new TcpDiscoveryHandshakeResponse(locNodeId, 
locNode.internalOrder());
 
-                    if (req.client())
+                    if (req.client()) {
                         res.clientAck(true);
+
+                        if (req.dcId() != null && !Objects.equals(req.dcId(), 
locNode.dataCenterId())) {
+                            Optional<TcpDiscoveryNode> dcNode = 
ring.serverNodes().stream()
+                                .filter(node -> node.dataCenterId() != null && 
node.dataCenterId().equals(req.dcId()))

Review Comment:
   ```suggestion
                                   .filter(node -> node.visible()).filter(node 
-> node.dataCenterId() != null && node.dataCenterId().equals(req.dcId()))
   ```



##########
modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java:
##########


Review Comment:
   ```suggestion
   import org.apache.ignite.internal.util.typedef.internal.S;
   import org.jetbrains.annotations.Nullable;
   ```



##########
modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java:
##########
@@ -17,6 +17,8 @@
 
 package org.apache.ignite.spi.discovery.tcp.messages;
 
+import java.net.InetSocketAddress;
+import java.util.Collection;
 import java.util.UUID;
 import org.apache.ignite.internal.util.typedef.internal.S;

Review Comment:
   ```suggestion
   import org.apache.ignite.internal.util.typedef.internal.S;
   import org.jetbrains.annotations.Nullable;
   ```



##########
modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java:
##########
@@ -605,50 +604,13 @@ else if (state == DISCONNECTED) {
 
             Collection<InetSocketAddress> addrs0 = new ArrayList<>(addrs);
 
-            boolean wait = false;
+            T2<Boolean, T2<SocketStream, Integer>> waitAndRes = 
sendJoinRequests(prevAddr != null, addrs);
 
-            for (int i = addrs.size() - 1; i >= 0; i--) {
-                if (Thread.currentThread().isInterrupted())
-                    throw new InterruptedException();
+            boolean wait = waitAndRes.get1();
+            T2<SocketStream, Integer> res = waitAndRes.get2();
 
-                InetSocketAddress addr = addrs.get(i);
-
-                boolean recon = prevAddr != null;
-
-                T3<SocketStream, Integer, Boolean> sockAndRes = 
sendJoinRequest(recon, addr);
-
-                if (sockAndRes == null) {
-                    addrs.remove(i);
-
-                    continue;
-                }
-
-                assert sockAndRes.get1() != null && sockAndRes.get2() != null 
: sockAndRes;
-
-                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;
-
-                    default:
-                        if (log.isDebugEnabled())
-                            log.debug("Received unexpected response to join 
request: " + sockAndRes.get2());
-
-                        U.closeQuiet(sock);
-                }
-            }
+            if (res != null)
+                return waitAndRes.get2().get1();

Review Comment:
   ```suggestion
                   return res.get1();
   ```



##########
modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeResponse.java:
##########
@@ -94,6 +99,16 @@ public void clientAck(boolean clientAck) {
         setFlag(CLIENT_ACK_FLAG_POS, clientAck);
     }
 
+    /** @return Socket addresses list for redirect. */
+    public Collection<InetSocketAddress> redirectAddresses() {

Review Comment:
   ```suggestion
       @Nullable public Collection<InetSocketAddress> redirectAddresses() {
   ```



##########
modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryHandshakeRequest.java:
##########
@@ -69,6 +72,16 @@ public void changeTopology(UUID prevNodeId) {
         this.prevNodeId = prevNodeId;
     }
 
+    /** @return DataCenter id. */
+    public String dcId() {

Review Comment:
   ```suggestion
       @Nullable public String dcId() {
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to