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();