#IGNITE-250 Fixed tests.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9ae0eb89 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9ae0eb89 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9ae0eb89 Branch: refs/heads/ignite-sql-old Commit: 9ae0eb892fa7dac07655b097826e9def4380801e Parents: 2950a16 Author: nikolay_tikhonov <ntikho...@gridgain.com> Authored: Sat Feb 14 14:34:43 2015 +0300 Committer: nikolay_tikhonov <ntikho...@gridgain.com> Committed: Sat Feb 14 14:34:43 2015 +0300 ---------------------------------------------------------------------- .../spi/discovery/tcp/TcpDiscoverySpi.java | 38 ++++++++++++++++++++ .../internal/GridReleaseTypeSelfTest.java | 35 ++---------------- 2 files changed, 40 insertions(+), 33 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9ae0eb89/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java index cb1f1d1..0df53f9 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java @@ -3182,6 +3182,44 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov String rmtBuildVer = node.attribute(ATTR_BUILD_VER); if (!F.eq(rmtBuildVer, locBuildVer)) { + // OS nodes don't support rolling updates. + if (!locBuildVer.equals(rmtBuildVer)) { + String errMsg = "Local node and remote node have different version numbers " + + "(node will not join, Ignite does not support rolling updates, " + + "so versions must be exactly the same) " + + "[locBuildVer=" + locBuildVer + ", rmtBuildVer=" + rmtBuildVer + + ", locNodeAddrs=" + U.addressesAsString(locNode) + + ", rmtNodeAddrs=" + U.addressesAsString(node) + + ", locNodeId=" + locNode.id() + ", rmtNodeId=" + msg.creatorNodeId() + ']'; + + LT.warn(log, null, errMsg); + + // Always output in debug. + if (log.isDebugEnabled()) + log.debug(errMsg); + + try { + String sndMsg = "Local node and remote node have different version numbers " + + "(node will not join, Ignite does not support rolling updates, " + + "so versions must be exactly the same) " + + "[locBuildVer=" + rmtBuildVer + ", rmtBuildVer=" + locBuildVer + + ", locNodeAddrs=" + U.addressesAsString(node) + ", locPort=" + node.discoveryPort() + + ", rmtNodeAddr=" + U.addressesAsString(locNode) + ", locNodeId=" + node.id() + + ", rmtNodeId=" + locNode.id() + ']'; + + trySendMessageDirectly(node, + new TcpDiscoveryCheckFailedMessage(locNodeId, sndMsg)); + } + catch (IgniteSpiException e) { + if (log.isDebugEnabled()) + log.debug("Failed to send version check failed message to node " + + "[node=" + node + ", err=" + e.getMessage() + ']'); + } + + // Ignore join request. + return; + } + Collection<String> locCompatibleVers = locNode.attribute(ATTR_COMPATIBLE_VERS); Collection<String> rmtCompatibleVers = node.attribute(ATTR_COMPATIBLE_VERS); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9ae0eb89/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java index a2bb7f0..284aa0c 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/GridReleaseTypeSelfTest.java @@ -73,40 +73,9 @@ public class GridReleaseTypeSelfTest extends GridCommonAbstractTest { /** * @throws Exception If failed. */ - public void testNodeJoinTopologyWithDifferentReleaseType() throws Exception { - firstNodeVer = "1.0.0-ent"; - secondNodeVer = "1.0.0-os"; - - try { - startGrids(2); - } - catch (IgniteCheckedException e) { - StringWriter errors = new StringWriter(); - - e.printStackTrace(new PrintWriter(errors)); - - String stackTrace = errors.toString(); - - assertTrue( - "Caught exception does not contain specified string.", - stackTrace.contains("Topology cannot contain nodes of both enterprise and open source") - ); - - return; - } - finally { - stopAllGrids(); - } - - fail("Exception has not been thrown."); - } - - /** - * @throws Exception If failed. - */ public void testOsEditionDoesNotSupportRollingUpdates() throws Exception { - firstNodeVer = "1.0.0-os"; - secondNodeVer = "1.0.1-os"; + firstNodeVer = "1.0.0"; + secondNodeVer = "1.0.1"; try { startGrids(2);