You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/08/27 12:40:50 UTC
[1/2] ignite git commit: ignite-1301: added portable protocol version
info to node's attributes
Repository: ignite
Updated Branches:
refs/heads/ignite-1301 3d46b6248 -> 6c5e833cf
ignite-1301: added portable protocol version info to node's attributes
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7a30405e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7a30405e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7a30405e
Branch: refs/heads/ignite-1301
Commit: 7a30405e210791ebd73b63ebeeda8cc479e40a6e
Parents: e428206
Author: Denis Magda <dm...@gridgain.com>
Authored: Thu Aug 27 10:34:59 2015 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Thu Aug 27 10:34:59 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/IgniteKernal.java | 4 ++
.../ignite/internal/IgniteNodeAttributes.java | 3 ++
.../discovery/GridDiscoveryManager.java | 13 ++++-
.../marshaller/portable/PortableMarshaller.java | 3 ++
.../GridDiscoveryManagerAttributesSelfTest.java | 50 ++++++++++++++++++++
5 files changed, 71 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/7a30405e/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 1db73bf..c134c90 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -71,6 +71,7 @@ import org.apache.ignite.lang.*;
import org.apache.ignite.lifecycle.*;
import org.apache.ignite.marshaller.*;
import org.apache.ignite.marshaller.optimized.*;
+import org.apache.ignite.marshaller.portable.*;
import org.apache.ignite.mxbean.*;
import org.apache.ignite.plugin.*;
import org.apache.ignite.spi.*;
@@ -1170,6 +1171,9 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
add(ATTR_MARSHALLER, cfg.getMarshaller().getClass().getName());
add(ATTR_USER_NAME, System.getProperty("user.name"));
add(ATTR_GRID_NAME, gridName);
+ add(ATTR_PORTABLE_PROTO_VER, cfg.getMarshaller() instanceof PortableMarshaller ?
+ ((PortableMarshaller)cfg.getMarshaller()).getProtocolVersion().toString() :
+ PortableMarshaller.DFLT_PORTABLE_PROTO_VER.toString());
add(ATTR_PEER_CLASSLOADING, cfg.isPeerClassLoadingEnabled());
add(ATTR_DEPLOYMENT_MODE, cfg.getDeploymentMode());
http://git-wip-us.apache.org/repos/asf/ignite/blob/7a30405e/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
index 10b8df0..ea3eafd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
@@ -135,6 +135,9 @@ public final class IgniteNodeAttributes {
/** Node consistent id. */
public static final String ATTR_NODE_CONSISTENT_ID = ATTR_PREFIX + ".consistent.id";
+ /** Portable protocol version. */
+ public static final String ATTR_PORTABLE_PROTO_VER = ATTR_PREFIX + ".portable.proto.ver";
+
/**
* Enforces singleton.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/7a30405e/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index a7363af..8437468 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -906,6 +906,8 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
// Fetch local node attributes once.
String locPreferIpV4 = locNode.attribute("java.net.preferIPv4Stack");
+ String locPortableProtoVer = locNode.attribute(ATTR_PORTABLE_PROTO_VER);
+
Object locMode = locNode.attribute(ATTR_DEPLOYMENT_MODE);
int locJvmMajVer = nodeJavaMajorVersion(locNode);
@@ -950,11 +952,18 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
boolean rmtP2pEnabled = n.attribute(ATTR_PEER_CLASSLOADING);
if (locP2pEnabled != rmtP2pEnabled)
- throw new IgniteCheckedException("Remote node has peer class loading enabled flag different from local " +
- "[locId8=" + U.id8(locNode.id()) + ", locPeerClassLoading=" + locP2pEnabled +
+ throw new IgniteCheckedException("Remote node has peer class loading enabled flag different from" +
+ " local [locId8=" + U.id8(locNode.id()) + ", locPeerClassLoading=" + locP2pEnabled +
", rmtId8=" + U.id8(n.id()) + ", rmtPeerClassLoading=" + rmtP2pEnabled +
", rmtAddrs=" + U.addressesAsString(n) + ']');
}
+
+ String rmtPortableProtoVer = n.attribute(ATTR_PORTABLE_PROTO_VER);
+
+ // In order to support backward compatibility skip the check for nodes that don't have this attribute.
+ if (rmtPortableProtoVer != null && !F.eq(locPortableProtoVer, rmtPortableProtoVer))
+ throw new IgniteCheckedException("Remote node has portable protocol version different from local " +
+ "[locVersion=" + locPortableProtoVer + ", rmtVersion=" + rmtPortableProtoVer + ']');
}
if (log.isDebugEnabled())
http://git-wip-us.apache.org/repos/asf/ignite/blob/7a30405e/modules/core/src/main/java/org/apache/ignite/marshaller/portable/PortableMarshaller.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/portable/PortableMarshaller.java b/modules/core/src/main/java/org/apache/ignite/marshaller/portable/PortableMarshaller.java
index 2a17363..a4c8b80 100644
--- a/modules/core/src/main/java/org/apache/ignite/marshaller/portable/PortableMarshaller.java
+++ b/modules/core/src/main/java/org/apache/ignite/marshaller/portable/PortableMarshaller.java
@@ -277,6 +277,9 @@ public class PortableMarshaller extends AbstractMarshaller {
* @param protoVer Portable protocol version.
*/
public void setProtocolVersion(PortableProtocolVersion protoVer) {
+ if (protoVer == null)
+ throw new IllegalArgumentException("Wrong portable protocol version: " + protoVer);
+
this.protoVer = protoVer;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/7a30405e/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
index e76c615..7e11592 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerAttributesSelfTest.java
@@ -18,12 +18,17 @@
package org.apache.ignite.internal.managers.discovery;
import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
import org.apache.ignite.spi.discovery.tcp.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
import org.apache.ignite.testframework.junits.common.*;
+import java.lang.reflect.*;
+import java.util.*;
+
import static org.apache.ignite.configuration.DeploymentMode.*;
/**
@@ -151,6 +156,51 @@ public abstract class GridDiscoveryManagerAttributesSelfTest extends GridCommonA
}
/**
+ * @throws Exception If failed.
+ */
+ public void testDifferentPortableProtocolVersions() throws Exception {
+ startGridWithPortableProtocolVer("VER_99_99_99");
+
+ try {
+ startGrid(1);
+
+ fail();
+ }
+ catch (IgniteCheckedException e) {
+ if (!e.getCause().getMessage().startsWith("Remote node has portable protocol version different from local"))
+ throw e;
+ }
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testNullPortableProtocolVersion() throws Exception {
+ startGridWithPortableProtocolVer(null);
+
+ // Must not fail in order to preserve backward compatibility with the nodes that don't have this property yet.
+ startGrid(1);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ private void startGridWithPortableProtocolVer(String ver) throws Exception {
+ Ignite ignite = startGrid(0);
+
+ ClusterNode clusterNode = ignite.cluster().localNode();
+
+ Field f = clusterNode.getClass().getDeclaredField("attrs");
+ f.setAccessible(true);
+
+ Map<String, Object> attrs = new HashMap<>((Map<String, Object>)f.get(clusterNode));
+
+ attrs.put(IgniteNodeAttributes.ATTR_PORTABLE_PROTO_VER, ver);
+
+ f.set(clusterNode, attrs);
+ }
+
+ /**
* @param preferIpV4 {@code java.net.preferIPv4Stack} system property value.
* @throws Exception If failed.
*/
[2/2] ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-1301' into ignite-1301
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-1301' into ignite-1301
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/6c5e833c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/6c5e833c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/6c5e833c
Branch: refs/heads/ignite-1301
Commit: 6c5e833cf08c58ce414a70f9e0db47fcffd2aa2a
Parents: 3d46b62 7a30405
Author: Denis Magda <dm...@gridgain.com>
Authored: Thu Aug 27 13:40:05 2015 +0300
Committer: Denis Magda <dm...@gridgain.com>
Committed: Thu Aug 27 13:40:05 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/IgniteKernal.java | 4 ++
.../ignite/internal/IgniteNodeAttributes.java | 3 ++
.../discovery/GridDiscoveryManager.java | 13 ++++-
.../marshaller/portable/PortableMarshaller.java | 3 ++
.../GridDiscoveryManagerAttributesSelfTest.java | 50 ++++++++++++++++++++
5 files changed, 71 insertions(+), 2 deletions(-)
----------------------------------------------------------------------