You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by zh...@apache.org on 2017/07/29 00:52:19 UTC
[08/50] [abbrv] geode git commit: GEODE-3175 backward-compatibility
tests fail with bad classpath
GEODE-3175 backward-compatibility tests fail with bad classpath
Checking in changes on a feature branch that remove current-version
product classes from the classpaths of JVMs running old versions
of Geode.
Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/0e6dce76
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/0e6dce76
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/0e6dce76
Branch: refs/heads/feature/GEM-1483
Commit: 0e6dce76cb97cf3ac5f20eaaeeb130a4babd4212
Parents: b7db727
Author: Bruce Schuchardt <bs...@pivotal.io>
Authored: Thu Jul 13 10:49:02 2017 -0700
Committer: Bruce Schuchardt <bs...@pivotal.io>
Committed: Tue Jul 25 08:19:47 2017 -0700
----------------------------------------------------------------------
.../java/org/apache/geode/internal/Version.java | 13 +----
.../tier/sockets/ServerHandShakeProcessor.java | 3 +-
.../geode/test/dunit/standalone/ChildVM.java | 8 ++-
.../test/dunit/standalone/ProcessManager.java | 60 +++++++++++---------
4 files changed, 43 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/geode/blob/0e6dce76/geode-core/src/main/java/org/apache/geode/internal/Version.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/Version.java b/geode-core/src/main/java/org/apache/geode/internal/Version.java
index 3064c4c..39e3a3f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/Version.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/Version.java
@@ -180,11 +180,14 @@ public class Version implements Comparable<Version> {
public static final Version GFE_90 =
new Version("GFE", "9.0", (byte) 9, (byte) 0, (byte) 0, (byte) 0, GFE_90_ORDINAL);
+ // prior to v1.2.0 GEODE_110 was named GFE_91. This was used for both the rel/v1.1.0
+ // and rel/v1.1.1 releases
private static final byte GEODE_110_ORDINAL = 50;
public static final Version GEODE_110 =
new Version("GEODE", "1.1.0", (byte) 1, (byte) 1, (byte) 0, (byte) 0, GEODE_110_ORDINAL);
+ // This ordinal was never used
private static final byte GEODE_111_ORDINAL = 55;
public static final Version GEODE_111 =
@@ -206,8 +209,6 @@ public class Version implements Comparable<Version> {
*/
public static final short CURRENT_ORDINAL = CURRENT.ordinal();
- public static final short NOT_SUPPORTED_ORDINAL = 59;
-
/**
* version ordinal for test Backward compatibility.
*/
@@ -246,14 +247,6 @@ public class Version implements Comparable<Version> {
/** Return the <code>Version</code> represented by specified ordinal */
public static Version fromOrdinal(short ordinal, boolean forGFEClients)
throws UnsupportedVersionException {
- // Un-version client(client's prior to release 5.7) doesn't send version
- // byte in the handshake. So the next byte in the handshake has value 59 and
- // is interpreted as version byte. We are not supporting version 59 to
- // distinguish version client from unversion. Please use version ordinal 60
- // after 58 if required.
- if (ordinal == NOT_SUPPORTED_ORDINAL) {
- throw new UnsupportedVersionException("Un-versioned clients are not supported. ");
- }
if (ordinal == TOKEN_ORDINAL) {
return TOKEN;
}
http://git-wip-us.apache.org/repos/asf/geode/blob/0e6dce76/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerHandShakeProcessor.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerHandShakeProcessor.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerHandShakeProcessor.java
index 8b89694..47e6f3d 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerHandShakeProcessor.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerHandShakeProcessor.java
@@ -374,8 +374,7 @@ public class ServerHandShakeProcessor {
clientVersion = Version.fromOrdinal(clientVersionOrdinal, true);
} catch (UnsupportedVersionException uve) {
// Allows higher version of wan site to connect to server
- if (connection.getCommunicationMode() == Acceptor.GATEWAY_TO_GATEWAY
- && !(clientVersionOrdinal == Version.NOT_SUPPORTED_ORDINAL)) {
+ if (connection.getCommunicationMode() == Acceptor.GATEWAY_TO_GATEWAY) {
return Acceptor.VERSION;
} else {
SocketAddress sa = socket.getRemoteSocketAddress();
http://git-wip-us.apache.org/repos/asf/geode/blob/0e6dce76/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ChildVM.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ChildVM.java b/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ChildVM.java
index d54f3d0..b14ff1d 100644
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ChildVM.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ChildVM.java
@@ -49,8 +49,8 @@ public class ChildVM {
int pid = OSProcess.getId();
logger.info("VM" + vmNum + " is launching" + (pid > 0 ? " with PID " + pid : ""));
if (!VersionManager.isCurrentVersion(geodeVersion)) {
- logger.info("This VM is using Geode version {}. Version.CURRENT is {}", geodeVersion,
- Version.CURRENT);
+ logger.info("This VM is using Geode version {}. Version.CURRENT is {} (ordinal={})",
+ geodeVersion, Version.CURRENT, Version.CURRENT_ORDINAL);
}
MasterRemote holder = (MasterRemote) Naming
.lookup("//localhost:" + namingPort + "/" + DUnitLauncher.MASTER_PARAM);
@@ -67,8 +67,10 @@ public class ChildVM {
Thread.sleep(1000);
}
} catch (Throwable t) {
- t.printStackTrace();
+ logger.info("VM is exiting with error", t);
System.exit(1);
+ } finally {
+ logger.info("VM is exiting");
}
}
}
http://git-wip-us.apache.org/repos/asf/geode/blob/0e6dce76/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ProcessManager.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ProcessManager.java b/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ProcessManager.java
index 98b27a6..9a0ce86 100755
--- a/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ProcessManager.java
+++ b/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/ProcessManager.java
@@ -20,6 +20,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
import org.apache.commons.io.FileUtils;
import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.distributed.internal.InternalLocator;
+import org.apache.geode.test.dunit.Host;
import org.apache.geode.test.dunit.VM;
import java.io.BufferedReader;
@@ -30,6 +31,7 @@ import java.io.InputStreamReader;
import java.io.PrintStream;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
+import java.net.InetAddress;
import java.nio.file.Files;
import java.rmi.AccessException;
import java.rmi.NotBoundException;
@@ -90,12 +92,17 @@ public class ProcessManager {
}
// TODO - delete directory contents, preferably with commons io FileUtils
- Process process = Runtime.getRuntime().exec(cmd, null, workingDir);
- pendingVMs++;
- ProcessHolder holder = new ProcessHolder(process);
- processes.put(vmNum, holder);
- linkStreams(version, vmNum, holder, process.getErrorStream(), System.err);
- linkStreams(version, vmNum, holder, process.getInputStream(), System.out);
+ try {
+ Process process = Runtime.getRuntime().exec(cmd, null, workingDir);
+ pendingVMs++;
+ ProcessHolder holder = new ProcessHolder(process);
+ processes.put(vmNum, holder);
+ linkStreams(version, vmNum, holder, process.getErrorStream(), System.err);
+ linkStreams(version, vmNum, holder, process.getInputStream(), System.out);
+ } catch (RuntimeException | Error t) {
+ t.printStackTrace();
+ throw t;
+ }
}
public void validateVersion(String version) {
@@ -133,6 +140,7 @@ public class ProcessManager {
ProcessHolder holder = processes.remove(vmNum);
holder.kill();
holder.getProcess().waitFor();
+ System.out.println("Old process for vm_" + vmNum + " has exited");
launchVM(version, vmNum, true);
} catch (InterruptedException | IOException e) {
throw new RuntimeException("Unable to restart VM " + vmNum, e);
@@ -141,10 +149,11 @@ public class ProcessManager {
private void linkStreams(final String version, final int vmNum, final ProcessHolder holder,
final InputStream in, final PrintStream out) {
+ final String vmName = "[" + VM.getVMName(version, vmNum) + "] ";
+ System.out.println("linking IO streams for " + vmName);
Thread ioTransport = new Thread() {
public void run() {
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
- String vmName = "[" + VM.getVMName(version, vmNum) + "] ";
try {
String line = reader.readLine();
while (line != null) {
@@ -178,25 +187,24 @@ public class ProcessManager {
classPath = dunitClasspath;
} else {
// remove current-version product classes and resources from the classpath
- // String buildDir = separator + "geode-core" + separator + "build" + separator;
- //
- // String mainClasses = buildDir + "classes" + separator + "main";
- // dunitClasspath = removeFromPath(dunitClasspath, mainClasses);
- //
- // String mainResources = buildDir + "resources" + separator + "main";
- // dunitClasspath = removeFromPath(dunitClasspath, mainResources);
- //
- // String generatedResources = buildDir + "generated-resources" + separator + "main";
- // dunitClasspath = removeFromPath(dunitClasspath, generatedResources);
- //
- // buildDir = separator + "geode-common" + separator + "build" + separator + "classes"
- // + separator + "main";
- // dunitClasspath = removeFromPath(dunitClasspath, buildDir);
- //
- // buildDir = separator + "geode-json" + separator + "build" + separator + "classes" +
- // separator
- // + "main";
- // dunitClasspath = removeFromPath(dunitClasspath, buildDir);
+ String buildDir = separator + "geode-core" + separator + "build" + separator;
+
+ String mainClasses = buildDir + "classes" + separator + "main";
+ dunitClasspath = removeFromPath(dunitClasspath, mainClasses);
+
+ String mainResources = buildDir + "resources" + separator + "main";
+ dunitClasspath = removeFromPath(dunitClasspath, mainResources);
+
+ String generatedResources = buildDir + "generated-resources" + separator + "main";
+ dunitClasspath = removeFromPath(dunitClasspath, generatedResources);
+
+ buildDir = separator + "geode-common" + separator + "build" + separator + "classes"
+ + separator + "main";
+ dunitClasspath = removeFromPath(dunitClasspath, buildDir);
+
+ buildDir = separator + "geode-json" + separator + "build" + separator + "classes" + separator
+ + "main";
+ dunitClasspath = removeFromPath(dunitClasspath, buildDir);
classPath = versionManager.getClasspath(version) + File.pathSeparator + dunitClasspath;
}