Repository: ignite Updated Branches: refs/heads/master ffe729633 -> 84489f107
IGNITE-8130 Fixed race in test Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/84489f10 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/84489f10 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/84489f10 Branch: refs/heads/master Commit: 84489f10797b31ffbb7dd84d57c7235da494e409 Parents: ffe7296 Author: Alexey Goncharuk <alexey.goncha...@gmail.com> Authored: Wed Apr 4 14:36:10 2018 +0300 Committer: Alexey Goncharuk <alexey.goncha...@gmail.com> Committed: Wed Apr 4 14:36:10 2018 +0300 ---------------------------------------------------------------------- .../thin/JdbcThinWalModeChangeSelfTest.java | 9 ++++- .../WalModeChangeCommonAbstractSelfTest.java | 41 ++++++++++++++++---- 2 files changed, 40 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/84489f10/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinWalModeChangeSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinWalModeChangeSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinWalModeChangeSelfTest.java index 3aa88bc..addbf13 100644 --- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinWalModeChangeSelfTest.java +++ b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinWalModeChangeSelfTest.java @@ -18,6 +18,7 @@ package org.apache.ignite.jdbc.thin; import org.apache.ignite.Ignite; +import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.cache.CacheMode; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.internal.IgniteKernal; @@ -41,7 +42,7 @@ public class JdbcThinWalModeChangeSelfTest extends WalModeChangeAbstractSelfTest } /** {@inheritDoc} */ - @Override protected void createCache(Ignite node, CacheConfiguration ccfg) { + @Override protected void createCache(Ignite node, CacheConfiguration ccfg) throws IgniteCheckedException { String template = ccfg.getCacheMode() == CacheMode.PARTITIONED ? QueryUtils.TEMPLATE_PARTITIONED : QueryUtils.TEMPLATE_REPLICATED; @@ -54,13 +55,17 @@ public class JdbcThinWalModeChangeSelfTest extends WalModeChangeAbstractSelfTest "\""; execute(node, cmd); + + alignCacheTopologyVersion(node); } /** {@inheritDoc} */ - @Override protected void destroyCache(Ignite node, String cacheName) { + @Override protected void destroyCache(Ignite node, String cacheName) throws IgniteCheckedException { String cmd = "DROP TABLE IF EXISTS " + cacheName; execute(node, cmd); + + alignCacheTopologyVersion(node); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/84489f10/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeCommonAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeCommonAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeCommonAbstractSelfTest.java index e2ae4fa..3056a13 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeCommonAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeCommonAbstractSelfTest.java @@ -17,6 +17,10 @@ package org.apache.ignite.internal.processors.cache; +import java.sql.SQLException; +import java.util.Collection; +import java.util.Collections; +import java.util.concurrent.Callable; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.Ignition; @@ -28,20 +32,17 @@ import org.apache.ignite.configuration.DataRegionConfiguration; import org.apache.ignite.configuration.DataStorageConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.internal.IgniteClientReconnectAbstractTest; +import org.apache.ignite.internal.IgniteEx; +import org.apache.ignite.internal.IgniteInternalFuture; +import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.util.lang.GridAbsPredicate; import org.apache.ignite.internal.util.lang.IgniteInClosureX; import org.apache.ignite.internal.util.typedef.F; -import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; -import java.sql.SQLException; -import java.util.Collection; -import java.util.Collections; -import java.util.concurrent.Callable; - import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL; /** @@ -127,8 +128,10 @@ public abstract class WalModeChangeCommonAbstractSelfTest extends GridCommonAbst * @param ccfg Cache configuration. */ @SuppressWarnings("unchecked") - protected void createCache(Ignite node, CacheConfiguration ccfg) { + protected void createCache(Ignite node, CacheConfiguration ccfg) throws IgniteCheckedException { node.getOrCreateCache(ccfg); + + alignCacheTopologyVersion(node); } /** @@ -137,8 +140,30 @@ public abstract class WalModeChangeCommonAbstractSelfTest extends GridCommonAbst * @param node Node. * @param cacheName Cache name. */ - protected void destroyCache(Ignite node, String cacheName) { + protected void destroyCache(Ignite node, String cacheName) throws IgniteCheckedException { node.destroyCache(cacheName); + + alignCacheTopologyVersion(node); + } + + /** + * Waits for the topology version to be not less than one registered on source node. + * + * @param src Source node. + * @throws IgniteCheckedException If failed to wait on affinity ready future. + */ + protected void alignCacheTopologyVersion(Ignite src) throws IgniteCheckedException { + AffinityTopologyVersion topVer = ((IgniteEx)src).context().cache().context().exchange().readyAffinityVersion(); + + info("Will wait for topology version on all nodes: " + topVer); + + for (Ignite ignite : Ignition.allGrids()) { + IgniteInternalFuture<?> ready = ((IgniteEx)ignite).context().cache().context().exchange() + .affinityReadyFuture(topVer); + + if (ready != null) + ready.get(); + } } /**