Repository: ignite Updated Branches: refs/heads/ignite-1537 a3f8678a4 -> 1a00ab5af
ignite-1.5 Fixed GridTcpCommunicationSpiMultithreadedSelfTest to use GridTimeoutProcessor to avoid hangs on connection creation. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1a00ab5a Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1a00ab5a Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1a00ab5a Branch: refs/heads/ignite-1537 Commit: 1a00ab5aff6447abd692b9cc94faa836967788a7 Parents: a3f8678 Author: sboikov <[email protected]> Authored: Mon Dec 21 10:22:01 2015 +0300 Committer: sboikov <[email protected]> Committed: Mon Dec 21 10:22:01 2015 +0300 ---------------------------------------------------------------------- ...cpCommunicationSpiMultithreadedSelfTest.java | 21 ++++++++++++++++++++ .../testframework/GridSpiTestContext.java | 18 +++++++++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1a00ab5a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiMultithreadedSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiMultithreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiMultithreadedSelfTest.java index 731b0c7..7bbf531 100644 --- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiMultithreadedSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiMultithreadedSelfTest.java @@ -37,6 +37,7 @@ import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.IgniteInterruptedCheckedException; import org.apache.ignite.internal.managers.communication.GridIoMessageFactory; +import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor; import org.apache.ignite.internal.util.lang.GridAbsPredicate; import org.apache.ignite.internal.util.nio.GridCommunicationClient; import org.apache.ignite.internal.util.nio.GridNioRecoveryDescriptor; @@ -55,6 +56,7 @@ import org.apache.ignite.spi.communication.GridTestMessage; import org.apache.ignite.testframework.GridSpiTestContext; import org.apache.ignite.testframework.GridTestNode; import org.apache.ignite.testframework.GridTestUtils; +import org.apache.ignite.testframework.junits.GridTestKernalContext; import org.apache.ignite.testframework.junits.IgniteTestResources; import org.apache.ignite.testframework.junits.spi.GridSpiAbstractTest; import org.jsr166.ConcurrentLinkedDeque8; @@ -90,6 +92,9 @@ public class GridTcpCommunicationSpiMultithreadedSelfTest extends GridSpiAbstrac /** Initialized nodes */ private static final List<ClusterNode> nodes = new ArrayList<>(); + /** */ + private static GridTimeoutProcessor timeoutProcessor; + /** Flag indicating if listener should reject messages. */ private static boolean reject; @@ -472,6 +477,12 @@ public class GridTcpCommunicationSpiMultithreadedSelfTest extends GridSpiAbstrac Map<ClusterNode, GridSpiTestContext> ctxs = new HashMap<>(); + timeoutProcessor = new GridTimeoutProcessor(new GridTestKernalContext(log)); + + timeoutProcessor.start(); + + timeoutProcessor.onKernalStart(); + for (int i = 0; i < getSpiCount(); i++) { CommunicationSpi<Message> spi = newCommunicationSpi(); @@ -485,6 +496,8 @@ public class GridTcpCommunicationSpiMultithreadedSelfTest extends GridSpiAbstrac GridSpiTestContext ctx = initSpiContext(); + ctx.timeoutProcessor(timeoutProcessor); + ctx.setLocalNode(node); info(">>> Initialized context: nodeId=" + ctx.localNode().id()); @@ -548,6 +561,14 @@ public class GridTcpCommunicationSpiMultithreadedSelfTest extends GridSpiAbstrac /** {@inheritDoc} */ @Override protected void afterTestsStopped() throws Exception { + if (timeoutProcessor != null) { + timeoutProcessor.onKernalStop(true); + + timeoutProcessor.stop(true); + + timeoutProcessor = null; + } + for (CommunicationSpi<Message> spi : spis.values()) { spi.onContextDestroyed(); http://git-wip-us.apache.org/repos/asf/ignite/blob/1a00ab5a/modules/core/src/test/java/org/apache/ignite/testframework/GridSpiTestContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/GridSpiTestContext.java b/modules/core/src/test/java/org/apache/ignite/testframework/GridSpiTestContext.java index e257a97..0bffe8b 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/GridSpiTestContext.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/GridSpiTestContext.java @@ -41,6 +41,8 @@ import org.apache.ignite.internal.managers.communication.GridIoManager; import org.apache.ignite.internal.managers.communication.GridIoMessageFactory; import org.apache.ignite.internal.managers.communication.GridMessageListener; import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener; +import org.apache.ignite.internal.processors.timeout.GridSpiTimeoutObject; +import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.plugin.extensions.communication.MessageFactory; @@ -89,6 +91,16 @@ public class GridSpiTestContext implements IgniteSpiContext { /** */ private MessageFactory factory; + /** */ + private GridTimeoutProcessor timeoutProcessor; + + /** + * @param timeoutProcessor Timeout processor. + */ + public void timeoutProcessor(GridTimeoutProcessor timeoutProcessor) { + this.timeoutProcessor = timeoutProcessor; + } + /** {@inheritDoc} */ @Override public Collection<ClusterNode> remoteNodes() { return rmtNodes; @@ -530,12 +542,14 @@ public class GridSpiTestContext implements IgniteSpiContext { /** {@inheritDoc} */ @Override public void addTimeoutObject(IgniteSpiTimeoutObject obj) { - // No-op. + if (timeoutProcessor != null) + timeoutProcessor.addTimeoutObject(new GridSpiTimeoutObject(obj)); } /** {@inheritDoc} */ @Override public void removeTimeoutObject(IgniteSpiTimeoutObject obj) { - // No-op. + if (timeoutProcessor != null) + timeoutProcessor.removeTimeoutObject(new GridSpiTimeoutObject(obj)); } /**
