[
https://issues.apache.org/jira/browse/GEODE-3985?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16257434#comment-16257434
]
ASF GitHub Bot commented on GEODE-3985:
---------------------------------------
jinmeiliao closed pull request #1067: GEODE-3985: rolling upgrade tests is
prone to accidentally roll the vms back to current version
URL: https://github.com/apache/geode/pull/1067
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git
a/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTest.java
b/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTest.java
index a625dda1cb..52776b65d0 100755
---
a/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTest.java
+++
b/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTest.java
@@ -727,9 +727,9 @@ public void testOldMemberCantJoinRolledLocators() throws
Exception {
public void doTestPutAndGetMixedServers(String objectType, boolean
partitioned, String oldVersion)
throws Exception {
final Host host = Host.getHost(0);
- VM currentServer1 = host.getVM(0);
+ VM currentServer1 = host.getVM(VersionManager.CURRENT_VERSION, 0);
VM oldServerAndLocator = host.getVM(oldVersion, 1);
- VM currentServer2 = host.getVM(2);
+ VM currentServer2 = host.getVM(VersionManager.CURRENT_VERSION, 2);
VM oldServer2 = host.getVM(oldVersion, 3);
String regionName = "aRegion";
@@ -796,9 +796,9 @@ public void
testCreateIndexesMixedServersOnPartitionedRegions() throws Exception
public void doTestQueryMixedServers(boolean partitioned, String oldVersion)
throws Exception {
final Host host = Host.getHost(0);
- VM currentServer1 = host.getVM(0);
+ VM currentServer1 = host.getVM(VersionManager.CURRENT_VERSION, 0);
VM oldServer = host.getVM(oldVersion, 1);
- VM currentServer2 = host.getVM(2);
+ VM currentServer2 = host.getVM(VersionManager.CURRENT_VERSION, 2);
VM oldServerAndLocator = host.getVM(oldVersion, 3);
String regionName = "cqs";
@@ -846,9 +846,9 @@ public void testTracePRQuery() throws Exception {
public void doTestTracePRQuery(boolean partitioned, String oldVersion)
throws Exception {
final Host host = Host.getHost(0);
- VM currentServer1 = host.getVM(0);
+ VM currentServer1 = host.getVM(VersionManager.CURRENT_VERSION, 0);
VM oldServer = host.getVM(oldVersion, 1);
- VM currentServer2 = host.getVM(2);
+ VM currentServer2 = host.getVM(VersionManager.CURRENT_VERSION, 2);
VM oldServerAndLocator = host.getVM(oldVersion, 3);
String regionName = "cqs";
@@ -892,9 +892,9 @@ public void doTestTracePRQuery(boolean partitioned, String
oldVersion) throws Ex
public void doTestCreateIndexes(boolean createMultiIndexes, boolean
partitioned,
String oldVersion) throws Exception {
final Host host = Host.getHost(0);
- final VM currentServer1 = host.getVM(0);
+ final VM currentServer1 = host.getVM(VersionManager.CURRENT_VERSION, 0);
final VM oldServer = host.getVM(oldVersion, 1);
- final VM currentServer2 = host.getVM(2);
+ final VM currentServer2 = host.getVM(VersionManager.CURRENT_VERSION, 2);
final VM oldServerAndLocator = host.getVM(oldVersion, 3);
String regionName = "cqs";
@@ -1035,8 +1035,8 @@ private void doTestVerifyXmlEntity(String oldVersion)
throws Exception {
final Host host = Host.getHost(0);
VM oldLocator = host.getVM(oldVersion, 0);
VM oldServer = host.getVM(oldVersion, 1);
- VM currentServer1 = host.getVM(2);
- VM currentServer2 = host.getVM(3);
+ VM currentServer1 = host.getVM(VersionManager.CURRENT_VERSION, 2);
+ VM currentServer2 = host.getVM(VersionManager.CURRENT_VERSION, 3);
int[] locatorPorts = AvailablePortHelper.getRandomAvailableTCPPorts(1);
String hostName = NetworkUtils.getServerHostName(host);
@@ -1091,7 +1091,7 @@ public void
doTestHARegionNameOnDifferentServerVersions(boolean partitioned, Str
final Host host = Host.getHost(0);
VM locator = host.getVM(oldVersion, 0);
VM server1 = host.getVM(oldVersion, 1);
- VM server2 = host.getVM(2);
+ VM server2 = host.getVM(VersionManager.CURRENT_VERSION, 2);
VM client = host.getVM(oldVersion, 3);
int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(3);
@@ -1266,7 +1266,7 @@ private void invokeRunnableInVMs(boolean catchErrors,
CacheSerializableRunnable
private VM rollServerToCurrent(VM oldServer, int[] locatorPorts) throws
Exception {
// Roll the server
oldServer.invoke(invokeCloseCache());
- VM rollServer = Host.getHost(0).getVM(oldServer.getId());
+ VM rollServer = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION,
oldServer.getId());
rollServer.invoke(invokeCreateCache(locatorPorts == null ?
getSystemPropertiesPost71()
: getSystemPropertiesPost71(locatorPorts)));
rollServer.invoke(invokeAssertVersion(Version.CURRENT_ORDINAL));
@@ -1276,7 +1276,7 @@ private VM rollServerToCurrent(VM oldServer, int[]
locatorPorts) throws Exceptio
private VM rollClientToCurrent(VM oldClient, String[] hostNames, int[]
locatorPorts,
boolean subscriptionEnabled) throws Exception {
oldClient.invoke(invokeCloseCache());
- VM rollClient = Host.getHost(0).getVM(oldClient.getId());
+ VM rollClient = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION,
oldClient.getId());
rollClient.invoke(invokeCreateClientCache(getClientSystemProperties(),
hostNames, locatorPorts,
subscriptionEnabled));
rollClient.invoke(invokeAssertVersion(Version.CURRENT_ORDINAL));
@@ -1342,7 +1342,7 @@ private VM rollLocatorToCurrent(VM rollLocator, final
String serverHostName, fin
final String testName, final String locatorString) throws Exception {
// Roll the locator
rollLocator.invoke(invokeStopLocator());
- VM newLocator = Host.getHost(0).getVM(rollLocator.getId());
+ VM newLocator = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION,
rollLocator.getId());
newLocator.invoke(invokeStartLocator(serverHostName, port, testName,
getLocatorProperties91AndAfter(locatorString)));
return newLocator;
diff --git
a/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeDUnitTest.java
b/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeDUnitTest.java
index 002f7b7af7..a666aef6cb 100644
---
a/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeDUnitTest.java
+++
b/geode-core/src/test/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeDUnitTest.java
@@ -356,7 +356,13 @@ private void invokeRunnableInVMs(boolean catchErrors,
CacheSerializableRunnable
private VM rollServerToCurrent(VM oldServer, int[] locatorPorts) throws
Exception {
// Roll the server
oldServer.invoke(invokeCloseCache());
- VM rollServer = Host.getHost(0).getVM(oldServer.getId()); // gets a vm
with the current version
+ VM rollServer = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION,
oldServer.getId()); // gets
+
// a
+
// vm
+
// with
+
// the
+
// current
+
// version
rollServer.invoke(invokeCreateCache(locatorPorts == null ?
getSystemPropertiesPost71()
: getSystemPropertiesPost71(locatorPorts)));
rollServer.invoke(invokeAssertVersion(Version.CURRENT_ORDINAL));
@@ -401,7 +407,12 @@ private VM rollLocatorToCurrent(VM oldLocator, final
String serverHostName, fina
final String testName, final String locatorString) throws Exception {
// Roll the locator
oldLocator.invoke(invokeStopLocator());
- VM rollLocator = Host.getHost(0).getVM(oldLocator.getId()); // gets a VM
with current version
+ VM rollLocator = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION,
oldLocator.getId()); // gets
+
// a
+
// VM
+
// with
+
// current
+
// version
final Properties props = new Properties();
props.setProperty(DistributionConfig.ENABLE_CLUSTER_CONFIGURATION_NAME,
"false");
rollLocator.invoke(invokeStartLocator(serverHostName, port, testName,
locatorString, props));
diff --git
a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
index 0ab91251e0..c39258a424 100755
---
a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
+++
b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
@@ -146,8 +146,8 @@ public ClientServerMiscDUnitTest() {
@Override
public final void postSetUp() throws Exception {
host = Host.getHost(0);
- server1 = host.getVM(2);
- server2 = host.getVM(3);
+ server1 = host.getVM(VersionManager.CURRENT_VERSION, 2);
+ server2 = host.getVM(VersionManager.CURRENT_VERSION, 3);
}
int initServerCache(boolean notifyBySub) {
@@ -1409,7 +1409,7 @@ private void testOnServerMothods(boolean isCachingProxy,
boolean isHA) throws Ex
}
if (isHA) {
// add another server for HA scenario
- initServerCache(true, host.getVM(1), true);
+ initServerCache(true, host.getVM(VersionManager.CURRENT_VERSION, 1),
true);
}
String rName = "/" + REGION_NAME1;
String prName = "/" + PR_REGION_NAME;
diff --git
a/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
b/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
index 8407eb8259..fdc50ad19e 100644
---
a/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
+++
b/geode-core/src/test/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
@@ -481,9 +481,18 @@ public void init(Registry registry, int numVMs)
addHost(this);
}
+ /**
+ * this will not bounce VM to a different version. It will only get the
current running VM or
+ * launch a new one if not already launched.
+ */
@Override
public VM getVM(int n) {
- return getVM(VersionManager.CURRENT_VERSION, n);
+ if (n < getVMCount()) {
+ VM current = super.getVM(n);
+ return getVM(current.getVersion(), n);
+ } else {
+ return getVM(VersionManager.CURRENT_VERSION, n);
+ }
}
@Override
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 bef0ef2eee..5f4447e043 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
@@ -25,8 +25,6 @@
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;
import java.rmi.RemoteException;
@@ -40,7 +38,6 @@
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;
/**
@@ -193,6 +190,8 @@ public void run() {
String mainClasses = buildDir + "classes" + separator + "main";
dunitClasspath = removeFromPath(dunitClasspath, mainClasses);
+ dunitClasspath = removeFromPath(dunitClasspath,
"geode-core/out/production");
+
String mainResources = buildDir + "resources" + separator + "main";
dunitClasspath = removeFromPath(dunitClasspath, mainResources);
diff --git
a/geode-cq/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscBCDUnitTest.java
b/geode-cq/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscBCDUnitTest.java
index 655baf26f1..bca6c528db 100755
---
a/geode-cq/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscBCDUnitTest.java
+++
b/geode-cq/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscBCDUnitTest.java
@@ -125,8 +125,8 @@ public void
testSubscriptionWithMixedServersAndOldClientFeed() throws Exception
private void doTestSubscriptionWithMixedServersAndPeerFeed(String version,
boolean usePeerForFeed) {
server1 = Host.getHost(0).getVM(testVersion, 2);
- server2 = Host.getHost(0).getVM(3);
- VM server3 = Host.getHost(0).getVM(4);
+ server2 = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION, 3);
+ VM server3 = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION, 4);
VM interestClient = Host.getHost(0).getVM(testVersion, 0);
VM feeder = Host.getHost(0).getVM(version, 1);
@@ -227,8 +227,7 @@ public void
giiEventQueueFromCurrentToOldMemberShouldSucceed() {
public void giiEventQueueShouldSucceedWithMixedVersions(String
server1Version,
String server2Version) {
VM interestClient = Host.getHost(0).getVM(testVersion, 0);
- // VM interestClient = Host.getHost(0).getVM(0);
- VM feeder = Host.getHost(0).getVM(1);
+ VM feeder = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION, 1);
server1 = Host.getHost(0).getVM(server1Version, 2);
server2 = Host.getHost(0).getVM(server2Version, 3);
diff --git
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneSearchWithRollingUpgradeDUnit.java
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneSearchWithRollingUpgradeDUnit.java
index c449ac92e0..b622adfeea 100644
---
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneSearchWithRollingUpgradeDUnit.java
+++
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneSearchWithRollingUpgradeDUnit.java
@@ -304,7 +304,7 @@ private VM rollClientToCurrentAndCreateRegion(VM oldClient,
ClientRegionShortcut
private VM rollClientToCurrent(VM oldClient, String[] hostNames, int[]
locatorPorts,
boolean subscriptionEnabled) throws Exception {
oldClient.invoke(invokeCloseCache());
- VM rollClient = Host.getHost(0).getVM(oldClient.getId());
+ VM rollClient = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION,
oldClient.getId());
rollClient.invoke(invokeCreateClientCache(getClientSystemProperties(),
hostNames, locatorPorts,
subscriptionEnabled));
rollClient.invoke(invokeAssertVersion(Version.CURRENT_ORDINAL));
@@ -672,7 +672,13 @@ private void invokeRunnableInVMs(boolean catchErrors,
CacheSerializableRunnable
private VM rollServerToCurrent(VM oldServer, int[] locatorPorts) throws
Exception {
// Roll the server
oldServer.invoke(invokeCloseCache());
- VM rollServer = Host.getHost(0).getVM(oldServer.getId()); // gets a vm
with the current version
+ VM rollServer = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION,
oldServer.getId()); // gets
+
// a
+
// vm
+
// with
+
// the
+
// current
+
// version
rollServer.invoke(invokeCreateCache(locatorPorts == null ?
getSystemPropertiesPost71()
: getSystemPropertiesPost71(locatorPorts)));
rollServer.invoke(invokeAssertVersion(Version.CURRENT_ORDINAL));
@@ -699,7 +705,12 @@ private VM rollLocatorToCurrent(VM oldLocator, final
String serverHostName, fina
final String testName, final String locatorString) throws Exception {
// Roll the locator
oldLocator.invoke(invokeStopLocator());
- VM rollLocator = Host.getHost(0).getVM(oldLocator.getId()); // gets a VM
with current version
+ VM rollLocator = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION,
oldLocator.getId()); // gets
+
// a
+
// VM
+
// with
+
// current
+
// version
final Properties props = new Properties();
props.setProperty(DistributionConfig.ENABLE_CLUSTER_CONFIGURATION_NAME,
"false");
rollLocator.invoke(invokeStartLocator(serverHostName, port, testName,
locatorString, props));
diff --git
a/geode-wan/src/test/java/org/apache/geode/cache/wan/WANRollingUpgradeDUnitTest.java
b/geode-wan/src/test/java/org/apache/geode/cache/wan/WANRollingUpgradeDUnitTest.java
index b895baa06f..620c871927 100644
---
a/geode-wan/src/test/java/org/apache/geode/cache/wan/WANRollingUpgradeDUnitTest.java
+++
b/geode-wan/src/test/java/org/apache/geode/cache/wan/WANRollingUpgradeDUnitTest.java
@@ -89,7 +89,7 @@ public void testVerifyGatewaySenderProfile() throws Exception
{
final Host host = Host.getHost(0);
VM oldLocator = host.getVM(oldVersion, 0);
VM oldServer = host.getVM(oldVersion, 1);
- VM currentServer = host.getVM(2);
+ VM currentServer = host.getVM(VersionManager.CURRENT_VERSION, 2);
// Start locator
final int port =
AvailablePort.getRandomAvailablePort(AvailablePort.SOCKET);
@@ -130,10 +130,10 @@ public void testEventProcessingOldSiteOneCurrentSiteTwo()
throws Exception {
VM site1Client = host.getVM(oldVersion, 3);
// Get current site members
- VM site2Locator = host.getVM(4);
- VM site2Server1 = host.getVM(5);
- VM site2Server2 = host.getVM(6);
- VM site2Client = host.getVM(7);
+ VM site2Locator = host.getVM(VersionManager.CURRENT_VERSION, 4);
+ VM site2Server1 = host.getVM(VersionManager.CURRENT_VERSION, 5);
+ VM site2Server2 = host.getVM(VersionManager.CURRENT_VERSION, 6);
+ VM site2Client = host.getVM(VersionManager.CURRENT_VERSION, 7);
// Get old site locator properties
String hostName = NetworkUtils.getServerHostName(host);
@@ -193,9 +193,9 @@ public void
testSecondaryEventsNotReprocessedAfterOldSiteMemberFailover() throws
VM site1Client = host.getVM(oldVersion, 3);
// Get current site members
- VM site2Locator = host.getVM(4);
- VM site2Server1 = host.getVM(5);
- VM site2Server2 = host.getVM(6);
+ VM site2Locator = host.getVM(VersionManager.CURRENT_VERSION, 4);
+ VM site2Server1 = host.getVM(VersionManager.CURRENT_VERSION, 5);
+ VM site2Server2 = host.getVM(VersionManager.CURRENT_VERSION, 6);
// Get old site locator properties
String hostName = NetworkUtils.getServerHostName(host);
@@ -255,10 +255,10 @@ public void
testSecondaryEventsNotReprocessedAfterCurrentSiteMemberFailover() th
VM site1Server2 = host.getVM(oldVersion, 2);
// Get current site members
- VM site2Locator = host.getVM(4);
- VM site2Server1 = host.getVM(5);
- VM site2Server2 = host.getVM(6);
- VM site2Client = host.getVM(7);
+ VM site2Locator = host.getVM(VersionManager.CURRENT_VERSION, 4);
+ VM site2Server1 = host.getVM(VersionManager.CURRENT_VERSION, 5);
+ VM site2Server2 = host.getVM(VersionManager.CURRENT_VERSION, 6);
+ VM site2Client = host.getVM(VersionManager.CURRENT_VERSION, 7);
// Get old site locator properties
String hostName = NetworkUtils.getServerHostName(host);
@@ -319,9 +319,9 @@ public void
testSecondaryEventsNotReprocessedAfterCurrentSiteMemberFailoverWithO
VM site1Client = host.getVM(oldVersion, 3);
// Get current site members
- VM site2Locator = host.getVM(4);
- VM site2Server1 = host.getVM(5);
- VM site2Server2 = host.getVM(6);
+ VM site2Locator = host.getVM(VersionManager.CURRENT_VERSION, 4);
+ VM site2Server1 = host.getVM(VersionManager.CURRENT_VERSION, 5);
+ VM site2Server2 = host.getVM(VersionManager.CURRENT_VERSION, 6);
// Get old site locator properties
String hostName = NetworkUtils.getServerHostName(host);
@@ -442,9 +442,9 @@ public void testEventProcessingMixedSiteOneCurrentSiteTwo()
throws Exception {
VM site1Client = host.getVM(oldVersion, 3);
// Get old site members
- VM site2Locator = host.getVM(4);
- VM site2Server1 = host.getVM(5);
- VM site2Server2 = host.getVM(6);
+ VM site2Locator = host.getVM(VersionManager.CURRENT_VERSION, 4);
+ VM site2Server1 = host.getVM(VersionManager.CURRENT_VERSION, 5);
+ VM site2Server2 = host.getVM(VersionManager.CURRENT_VERSION, 6);
// Get mixed site locator properties
String hostName = NetworkUtils.getServerHostName(host);
@@ -512,7 +512,7 @@ private void stopLocator() throws Exception {
private VM rollLocatorToCurrent(VM rollLocator, int port, int
distributedSystemId,
String locators, String remoteLocators) throws Exception {
rollLocator.invoke(() -> stopLocator());
- VM newLocator = Host.getHost(0).getVM(rollLocator.getId());
+ VM newLocator = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION,
rollLocator.getId());
newLocator.invoke(() -> startLocator(port, distributedSystemId, locators,
remoteLocators));
return newLocator;
}
@@ -521,7 +521,7 @@ private VM rollStartAndConfigureServerToCurrent(VM
oldServer, String locators,
int distributedSystem, String regionName, String senderId, int
messageSyncInterval)
throws Exception {
oldServer.invoke(() -> closeCache());
- VM rollServer = Host.getHost(0).getVM(oldServer.getId());
+ VM rollServer = Host.getHost(0).getVM(VersionManager.CURRENT_VERSION,
oldServer.getId());
startAndConfigureServers(rollServer, null, locators, distributedSystem,
regionName, senderId,
messageSyncInterval);
return rollServer;
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> rolling upgrade tests accidentally rolls vms back to the current version
> ------------------------------------------------------------------------
>
> Key: GEODE-3985
> URL: https://issues.apache.org/jira/browse/GEODE-3985
> Project: Geode
> Issue Type: Bug
> Reporter: Jinmei Liao
> Assignee: Jinmei Liao
>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)