Repository: incubator-ignite Updated Branches: refs/heads/ignite-648-failover d5a7f6b97 -> aeeda5831
# ignite-648: add smart kill all and logging Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/aeeda583 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/aeeda583 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/aeeda583 Branch: refs/heads/ignite-648-failover Commit: aeeda58310681dc46f7736f51f251609c5228187 Parents: d5a7f6b Author: ashutak <ashu...@gridgain.com> Authored: Mon Jun 29 18:51:17 2015 +0300 Committer: ashutak <ashu...@gridgain.com> Committed: Mon Jun 29 18:51:17 2015 +0300 ---------------------------------------------------------------------- .../testframework/junits/GridAbstractTest.java | 1 + .../junits/multijvm/IgniteNodeRunner.java | 47 ++++++++++++-------- .../junits/multijvm/IgniteProcessProxy.java | 4 ++ .../IgniteCacheFailoverMJTestSuite.java | 37 +++++++-------- 4 files changed, 51 insertions(+), 38 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/aeeda583/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java index 0a43059..03a3c35 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java @@ -776,6 +776,7 @@ public abstract class GridAbstractTest extends TestCase { */ protected void stopAllGrids(boolean cancel) { IgniteProcessProxy.killAll(); // In multi jvm case. + IgniteNodeRunner.killAll(); Collection<Ignite> clients = new ArrayList<>(); Collection<Ignite> srvs = new ArrayList<>(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/aeeda583/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java index 04721e8..78a3fb0 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java @@ -127,33 +127,44 @@ public class IgniteNodeRunner { * @return List of killed process ids. * @throws Exception If exception. */ - public static List<Integer> killAll() throws Exception{ - MonitoredHost monitoredHost = MonitoredHost.getMonitoredHost(new HostIdentifier("localhost")); + public static List<Integer> killAll() { + try { + // TODO delete logging. + X.println(">>>>> IgniteNodeRunner.killAll"); - Set<Integer> jvms = monitoredHost.activeVms(); + MonitoredHost monitoredHost = MonitoredHost.getMonitoredHost(new HostIdentifier("localhost")); - List<Integer> res = new ArrayList<>(); + Set<Integer> jvms = monitoredHost.activeVms(); - for (Integer jvmId : jvms) { - try { - MonitoredVm vm = monitoredHost.getMonitoredVm(new VmIdentifier("//" + jvmId + "?mode=r"), 0); + List<Integer> res = new ArrayList<>(); - if (IgniteNodeRunner.class.getName().equals(MonitoredVmUtil.mainClass(vm, true))) { - Process killProc = U.isWindows() ? - Runtime.getRuntime().exec(new String[] {"taskkill", "/pid", jvmId.toString(), "/f", "/t"}) : - Runtime.getRuntime().exec(new String[] {"kill", "-9", jvmId.toString()}); + for (Integer jvmId : jvms) { + try { + MonitoredVm vm = monitoredHost.getMonitoredVm(new VmIdentifier("//" + jvmId + "?mode=r"), 0); - killProc.waitFor(); + if (IgniteNodeRunner.class.getName().equals(MonitoredVmUtil.mainClass(vm, true))) { + Process killProc = U.isWindows() ? + Runtime.getRuntime().exec(new String[] {"taskkill", "/pid", jvmId.toString(), "/f", "/t"}) : + Runtime.getRuntime().exec(new String[] {"kill", "-9", jvmId.toString()}); - res.add(jvmId); + killProc.waitFor(); + + res.add(jvmId); + } + } + catch (Exception e) { + // Print stack trace just for information. + X.printerrln("Could not kill IgniteNodeRunner java process. Jvm pid = " + jvmId, e); } } - catch (Exception e) { - // Print stack trace just for information. - X.printerrln("Could not kill IgniteNodeRunner java processes. Jvm pid = " + jvmId, e); - } + + return res; } + catch (Exception e) { + // Print stack trace just for information. + X.printerrln("Could not kill IgniteNodeRunner java processes.", e); - return res; + return Collections.emptyList(); + } } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/aeeda583/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java index 42436e5..201c36a 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java @@ -28,6 +28,7 @@ import org.apache.ignite.internal.processors.cache.*; import org.apache.ignite.internal.processors.hadoop.*; import org.apache.ignite.internal.util.*; import org.apache.ignite.internal.util.lang.*; +import org.apache.ignite.internal.util.typedef.*; import org.apache.ignite.internal.util.typedef.internal.*; import org.apache.ignite.lang.*; import org.apache.ignite.plugin.*; @@ -134,6 +135,9 @@ public class IgniteProcessProxy implements IgniteEx { * Kill all running processes. */ public static void killAll() { + // TODO delete logging. + X.println(">>>>> IgniteProcessProxy.killAll"); + for (IgniteProcessProxy ignite : gridProxies.values()) { try { ignite.getProcess().kill(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/aeeda583/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverMJTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverMJTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverMJTestSuite.java index b6d60e7..6ffaa8a 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverMJTestSuite.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverMJTestSuite.java @@ -18,10 +18,7 @@ package org.apache.ignite.testsuites; import junit.framework.*; -import org.apache.ignite.internal.processors.cache.distributed.dht.*; import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.*; -import org.apache.ignite.internal.processors.cache.distributed.near.*; -import org.apache.ignite.internal.processors.cache.distributed.replicated.*; /** * Test suite. @@ -37,23 +34,23 @@ public class IgniteCacheFailoverMJTestSuite extends TestSuite { // Failure consistency tests. suite.addTestSuite(GridCacheAtomicRemoveFailureMJTest.class); suite.addTestSuite(GridCacheAtomicPrimaryWriteOrderRemoveFailureMJTest.class); - suite.addTestSuite(GridCacheAtomicClientRemoveFailureMJTest.class); - - suite.addTestSuite(GridCacheDhtAtomicRemoveFailureMJTest.class); - suite.addTestSuite(GridCacheDhtRemoveFailureMJTest.class); - suite.addTestSuite(GridCacheDhtClientRemoveFailureMJTest.class); - suite.addTestSuite(GridCacheNearRemoveFailureMJTest.class); - suite.addTestSuite(GridCacheAtomicNearRemoveFailureMJTest.class); - suite.addTestSuite(GridCacheAtomicPrimaryWriteOrderNearRemoveFailureMJTest.class); - - // From part 2 - suite.addTestSuite(GridCacheAtomicFailoverSelfMJTest.class); - suite.addTestSuite(GridCacheAtomicPrimaryWriteOrderFailoverSelfMJTest.class); - suite.addTestSuite(GridCacheAtomicReplicatedFailoverSelfMJTest.class); - - suite.addTestSuite(GridCachePartitionedFailoverSelfMJTest.class); - suite.addTestSuite(GridCacheColocatedFailoverSelfMJTest.class); - suite.addTestSuite(GridCacheReplicatedFailoverSelfMJTest.class); +// suite.addTestSuite(GridCacheAtomicClientRemoveFailureMJTest.class); +// +// suite.addTestSuite(GridCacheDhtAtomicRemoveFailureMJTest.class); +// suite.addTestSuite(GridCacheDhtRemoveFailureMJTest.class); +// suite.addTestSuite(GridCacheDhtClientRemoveFailureMJTest.class); +// suite.addTestSuite(GridCacheNearRemoveFailureMJTest.class); +// suite.addTestSuite(GridCacheAtomicNearRemoveFailureMJTest.class); +// suite.addTestSuite(GridCacheAtomicPrimaryWriteOrderNearRemoveFailureMJTest.class); +// +// // From part 2 +// suite.addTestSuite(GridCacheAtomicFailoverSelfMJTest.class); +// suite.addTestSuite(GridCacheAtomicPrimaryWriteOrderFailoverSelfMJTest.class); +// suite.addTestSuite(GridCacheAtomicReplicatedFailoverSelfMJTest.class); +// +// suite.addTestSuite(GridCachePartitionedFailoverSelfMJTest.class); +// suite.addTestSuite(GridCacheColocatedFailoverSelfMJTest.class); +// suite.addTestSuite(GridCacheReplicatedFailoverSelfMJTest.class); return suite; }