IGNITE-709 Fix problem with ping on node stopping.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/32ce6a5f Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/32ce6a5f Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/32ce6a5f Branch: refs/heads/ignite-836_2 Commit: 32ce6a5f28510b994918834c1f276bde971ad9b0 Parents: d3237a6 Author: sevdokimov <sevdoki...@gridgain.com> Authored: Wed May 13 15:43:26 2015 +0300 Committer: sevdokimov <sevdoki...@gridgain.com> Committed: Wed May 13 15:43:26 2015 +0300 ---------------------------------------------------------------------- .../spi/discovery/tcp/TcpClientDiscoverySpi.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/32ce6a5f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java index 7ecfe48..29afb58 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java @@ -367,9 +367,6 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp /** {@inheritDoc} */ @Override public boolean pingNode(@NotNull final UUID nodeId) { - if (getSpiContext().isStopping()) - return false; - if (nodeId.equals(getLocalNodeId())) return true; @@ -387,8 +384,16 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp if (oldFut != null) fut = oldFut; - else + else { + if (getSpiContext().isStopping()) { + if (pingFuts.remove(nodeId, fut)) + fut.onDone(false); + + return false; + } + sockWriter.sendMessage(new TcpDiscoveryClientPingRequest(getLocalNodeId(), nodeId)); + } } final GridFutureAdapter<Boolean> finalFut = fut;