Merge branch 'ignite-1.7.9-p1' into ignite-1.9.2 # Conflicts: # modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java # modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9b9c3250 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9b9c3250 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9b9c3250 Branch: refs/heads/ignite-4932 Commit: 9b9c32502764062f30d99337355ea400b7f29295 Parents: 8b3860f d124004 Author: dkarachentsev <[email protected]> Authored: Wed Mar 22 15:33:33 2017 +0300 Committer: dkarachentsev <[email protected]> Committed: Wed Mar 22 15:33:33 2017 +0300 ---------------------------------------------------------------------- .../ignite/internal/GridKernalGatewayImpl.java | 8 +- .../apache/ignite/internal/IgniteKernal.java | 120 +++++- .../internal/IgniteNeedReconnectException.java | 40 ++ .../discovery/GridDiscoveryManager.java | 24 ++ .../GridCachePartitionExchangeManager.java | 25 +- .../dht/GridDhtAssignmentFetchFuture.java | 13 +- .../GridDhtPartitionsExchangeFuture.java | 46 ++- .../service/GridServiceProcessor.java | 101 ++--- .../ignite/spi/discovery/tcp/ClientImpl.java | 201 ++++++++-- .../ignite/spi/discovery/tcp/ServerImpl.java | 5 + .../spi/discovery/tcp/TcpDiscoveryImpl.java | 8 + .../spi/discovery/tcp/TcpDiscoverySpi.java | 9 + .../IgniteClientReconnectCacheTest.java | 7 +- .../ignite/internal/IgniteClientRejoinTest.java | 378 +++++++++++++++++++ .../GridServiceProcessorStopSelfTest.java | 75 ++++ .../tcp/TcpClientDiscoverySpiSelfTest.java | 48 ++- .../IgniteClientReconnectTestSuite.java | 2 + 17 files changed, 1012 insertions(+), 98 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9b9c3250/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java index a3d8c7b,25f7884..084ffa6 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java @@@ -3561,25 -3576,45 +3617,65 @@@ public class IgniteKernal implements Ig } /** + * @param node Node. + * @param payload Message payload. + * @param procFromNioThread If {@code true} message is processed from NIO thread. + * @return Response future. + */ + public IgniteInternalFuture sendIoTest(ClusterNode node, byte[] payload, boolean procFromNioThread) { + return ctx.io().sendIoTest(node, payload, procFromNioThread); + } + + /** + * @param nodes Nodes. + * @param payload Message payload. + * @param procFromNioThread If {@code true} message is processed from NIO thread. + * @return Response future. + */ + public IgniteInternalFuture sendIoTest(List<ClusterNode> nodes, byte[] payload, boolean procFromNioThread) { + return ctx.io().sendIoTest(nodes, payload, procFromNioThread); + } + ++ /** + * + */ + private class ReconnectState { + /** */ + private final GridFutureAdapter firstReconnectFut = new GridFutureAdapter(); + + /** */ + private GridCompoundFuture<?, Object> curReconnectFut; + + /** */ + private GridFutureAdapter<?> reconnectDone; + + /** + * @throws IgniteCheckedException If failed. + */ + void waitFirstReconnect() throws IgniteCheckedException { + firstReconnectFut.get(); + } + + /** + * + */ + void waitPreviousReconnect() { + if (curReconnectFut != null && !curReconnectFut.isDone()) { + assert reconnectDone != null; + + curReconnectFut.onDone(STOP_RECONNECT); + + try { + reconnectDone.get(); + } + catch (IgniteCheckedException ignote) { + // No-op. + } + } + + } + } + /** {@inheritDoc} */ @Override public String toString() { return S.toString(IgniteKernal.class, this); http://git-wip-us.apache.org/repos/asf/ignite/blob/9b9c3250/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9b9c3250/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9b9c3250/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAssignmentFetchFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9b9c3250/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9b9c3250/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java index f7f370e,bd81518..6ced5e6 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProcessor.java @@@ -1399,7 -1399,7 +1399,7 @@@ public class GridServiceProcessor exten return; try { - depExe.execute(new BusyRunnable() { - depExe.submit(new DepRunnable() { ++ depExe.execute(new DepRunnable() { @Override public void run0() { onSystemCacheUpdated(deps); } @@@ -1586,7 -1586,7 +1586,7 @@@ else topVer = new AffinityTopologyVersion(((DiscoveryEvent)evt).topologyVersion(), 0); - depExe.execute(new BusyRunnable() { - depExe.submit(new DepRunnable() { ++ depExe.execute(new DepRunnable() { @Override public void run0() { ClusterNode oldest = ctx.discovery().oldestAliveCacheServerNode(topVer); http://git-wip-us.apache.org/repos/asf/ignite/blob/9b9c3250/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9b9c3250/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9b9c3250/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9b9c3250/modules/core/src/test/java/org/apache/ignite/internal/processors/service/GridServiceProcessorStopSelfTest.java ----------------------------------------------------------------------
