Hello Ignite community, When testing Ignite in dockerized environment I faced the following issue with current TcpComminicationSpi implementation.
I had several physical machines and each Ignite node running inside Docker container had at least two InetAddresses associated with it: one IP address associated with physical host and one additional IP address of Docker bridge interface *which was default and the same accross all physical machines*. Each node publishes address of its Docker bridge in the list of its addresses although it is not reachable from remote nodes. So when node tries to establish communication connection using remote node's Docker address its request goes to itself like it was a loopback address. I would suggest to implement a simple heuristic to avoid this: before connecting to some remote node's address CommunicationSpi should check whether local node has exactly the same address. If "remote" and local addresses are the same CommunicationSpi should skip such address from remote node's list and proceed with the next one. Is it safe to implement such heuristic in TcpCommunicationSpi or there are some risks I'm missing? I would really appreciate any help from expert with deep knowledge of Communication mechanics. If such improvement makes sense I'll file a ticket and start working on it. Thanks, Sergey.