You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2021/02/24 08:18:20 UTC
[ignite] branch master updated: IGNITE-14219 Wait for Grid process
instead of Kill process (#8816)
This is an automated email from the ASF dual-hosted git repository.
av pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new b36386e IGNITE-14219 Wait for Grid process instead of Kill process (#8816)
b36386e is described below
commit b36386e31fbbb079ab0758dd5a2632e60a5227a5
Author: Maksim Timonin <ti...@gmail.com>
AuthorDate: Wed Feb 24 11:18:01 2021 +0300
IGNITE-14219 Wait for Grid process instead of Kill process (#8816)
---
.../clients/AbstractClientCompatibilityTest.java | 17 ++---------------
.../apache/ignite/internal/util/GridJavaProcess.java | 9 +++++++--
2 files changed, 9 insertions(+), 17 deletions(-)
diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/AbstractClientCompatibilityTest.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/AbstractClientCompatibilityTest.java
index f1ed37b..07ba238 100644
--- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/AbstractClientCompatibilityTest.java
+++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/AbstractClientCompatibilityTest.java
@@ -34,7 +34,6 @@ import org.apache.ignite.lang.IgniteProductVersion;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import org.apache.ignite.testframework.GridTestUtils;
-import org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy;
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -149,31 +148,19 @@ public abstract class AbstractClientCompatibilityTest extends IgniteCompatibilit
*/
@Test
public void testCurrentClientToOldServer() throws Exception {
- IgniteProcessProxy proxy = null;
-
try {
if (verFormatted.equals(IgniteVersionUtils.VER_STR)) {
Ignite ignite = startGrid(0);
initNode(ignite);
}
- else {
- Ignite ignite = startGrid(1, verFormatted, this::processRemoteConfiguration, this::initNode);
-
- proxy = IgniteProcessProxy.ignite(ignite.name());
- }
+ else
+ startGrid(1, verFormatted, this::processRemoteConfiguration, this::initNode);
testClient(verFormatted);
}
finally {
stopAllGrids();
-
- if (proxy != null) {
- Process proc = proxy.getProcess().getProcess();
-
- // We should wait until process exits, or it can affect next tests.
- assertTrue(GridTestUtils.waitForCondition(() -> !proc.isAlive(), 5_000L));
- }
}
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java
index d1971ea..a770b51 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.concurrent.TimeUnit;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.internal.util.lang.GridAbsClosure;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -189,12 +190,16 @@ public final class GridJavaProcess {
Runtime.getRuntime().exec(new String[] {"taskkill", "/pid", pid, "/f", "/t"}) :
Runtime.getRuntime().exec(new String[] {"kill", "-9", pid});
- killProc.waitFor();
+ if (!killProc.waitFor(5000, TimeUnit.MILLISECONDS))
+ throw new IllegalStateException("The kill process is hanging.");
int exitVal = killProc.exitValue();
if (exitVal != 0 && log.isInfoEnabled())
- log.info(String.format("Abnormal exit value of %s for pid %s", exitVal, pid));
+ log.info(String.format("Abnormal exit value of %s for trying to kill the pid %s", exitVal, pid));
+
+ if (!proc.waitFor(5000, TimeUnit.MILLISECONDS))
+ throw new IllegalStateException("Failed to kill grid java process.");
if (procKilledC != null)
procKilledC.apply();