[jboss-svn-commits] JBL Code SVN: r38191 - in labs/jbosstm/branches/JBOSSTS_4_16: txbridge/tests/src/test/java/org/jboss/jbossts/txbridge/tests/extension and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Sep 22 13:02:32 EDT 2012


Author: paul.robinson
Date: 2012-09-22 13:02:32 -0400 (Sat, 22 Sep 2012)
New Revision: 38191

Modified:
   labs/jbosstm/branches/JBOSSTS_4_16/XTS/sar/crash-recovery-tests/src/main/java/com/arjuna/qa/extension/JBossAS7ServerKillProcessor.java
   labs/jbosstm/branches/JBOSSTS_4_16/txbridge/tests/src/test/java/org/jboss/jbossts/txbridge/tests/extension/JBossTSAS7ServerKillProcessor.java
Log:
JBTM-1267 JBossAS7ServerKillProcessor should wait for defunct java process to disappear

Modified: labs/jbosstm/branches/JBOSSTS_4_16/XTS/sar/crash-recovery-tests/src/main/java/com/arjuna/qa/extension/JBossAS7ServerKillProcessor.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_16/XTS/sar/crash-recovery-tests/src/main/java/com/arjuna/qa/extension/JBossAS7ServerKillProcessor.java	2012-09-21 11:47:21 UTC (rev 38190)
+++ labs/jbosstm/branches/JBOSSTS_4_16/XTS/sar/crash-recovery-tests/src/main/java/com/arjuna/qa/extension/JBossAS7ServerKillProcessor.java	2012-09-22 17:02:32 UTC (rev 38191)
@@ -13,6 +13,7 @@
 
     private static final Logger logger = Logger.getLogger(JBossAS7ServerKillProcessor.class.getName());
     private static final String CHECK_JBOSS_ALIVE_CMD = "if [ \"$(jps | grep jboss-modules.jar)\" == \"\" ]; then exit 1; fi";
+    private static final String CHECK_FOR_DEFUNCT_JAVA_CMD = "if [ \"$(ps aux | grep '\\[java\\] <defunct>')\" == \"\" ]; then exit 1; fi";
     private static final String SHUTDOWN_JBOSS_CMD = "jps | grep jboss-modules.jar | awk '{ print $1 }' | xargs kill";
 
     private int checkPeriodMillis = 10 * 1000;
@@ -29,6 +30,9 @@
             if (jbossIsAlive()) {
                 Thread.sleep(checkPeriodMillis);
                 logger.info("jboss-as is still alive, sleeping for a further " + checkPeriodMillis + "ms");
+            } else if (isDefunctJavaProcess()) {
+                logger.info("Found a defunct java process, sleeping for a further " + checkPeriodMillis + "ms");
+                dumpProcesses(container);
             } else {
                 logger.info("jboss-as killed by byteman scirpt");
                 dumpProcesses(container);
@@ -45,10 +49,18 @@
     private boolean jbossIsAlive() throws Exception {
         int exitCode = runShellCommand(CHECK_JBOSS_ALIVE_CMD);
 
-        //Command will 'exit 1' if jboss is not running adn 'exit 0' if it is
+        //Command will 'exit 1' if jboss is not running and 'exit 0' if it is
         return exitCode == 0;
     }
 
+    private boolean isDefunctJavaProcess() throws Exception {
+        int exitCode = runShellCommand(CHECK_FOR_DEFUNCT_JAVA_CMD);
+
+        //Command will 'exit 1' if a defunct java process is not running and 'exit 0' if there is
+        return exitCode == 0;
+    }
+
+
     private void shutdownJBoss() throws Exception {
         runShellCommand(SHUTDOWN_JBOSS_CMD);
 

Modified: labs/jbosstm/branches/JBOSSTS_4_16/txbridge/tests/src/test/java/org/jboss/jbossts/txbridge/tests/extension/JBossTSAS7ServerKillProcessor.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_16/txbridge/tests/src/test/java/org/jboss/jbossts/txbridge/tests/extension/JBossTSAS7ServerKillProcessor.java	2012-09-21 11:47:21 UTC (rev 38190)
+++ labs/jbosstm/branches/JBOSSTS_4_16/txbridge/tests/src/test/java/org/jboss/jbossts/txbridge/tests/extension/JBossTSAS7ServerKillProcessor.java	2012-09-22 17:02:32 UTC (rev 38191)
@@ -1,7 +1,6 @@
 package org.jboss.jbossts.txbridge.tests.extension;
 
-import org.jboss.arquillian.container.spi.Container;
-import org.jboss.arquillian.container.spi.ServerKillProcessor;
+
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
@@ -9,10 +8,14 @@
 import java.util.Map;
 import java.util.logging.Logger;
 
+import org.jboss.arquillian.container.spi.Container;
+import org.jboss.arquillian.container.spi.ServerKillProcessor;
+
 public class JBossTSAS7ServerKillProcessor implements ServerKillProcessor {
 
     private static final Logger logger = Logger.getLogger(JBossTSAS7ServerKillProcessor.class.getName());
     private static final String CHECK_JBOSS_ALIVE_CMD = "if [ \"$(jps | grep jboss-modules.jar)\" == \"\" ]; then exit 1; fi";
+    private static final String CHECK_FOR_DEFUNCT_JAVA_CMD = "if [ \"$(ps aux | grep '\\[java\\] <defunct>')\" == \"\" ]; then exit 1; fi";
     private static final String SHUTDOWN_JBOSS_CMD = "jps | grep jboss-modules.jar | awk '{ print $1 }' | xargs kill";
 
     private int checkPeriodMillis = 10 * 1000;
@@ -29,6 +32,9 @@
             if (jbossIsAlive()) {
                 Thread.sleep(checkPeriodMillis);
                 logger.info("jboss-as is still alive, sleeping for a further " + checkPeriodMillis + "ms");
+            } else if (isDefunctJavaProcess()) {
+                logger.info("Found a defunct java process, sleeping for a further " + checkPeriodMillis + "ms");
+                dumpProcesses(container);
             } else {
                 logger.info("jboss-as killed by byteman scirpt");
                 dumpProcesses(container);
@@ -45,10 +51,18 @@
     private boolean jbossIsAlive() throws Exception {
         int exitCode = runShellCommand(CHECK_JBOSS_ALIVE_CMD);
 
-        //Command will 'exit 1' if jboss is not running adn 'exit 0' if it is
+        //Command will 'exit 1' if jboss is not running and 'exit 0' if it is
         return exitCode == 0;
     }
 
+    private boolean isDefunctJavaProcess() throws Exception {
+        int exitCode = runShellCommand(CHECK_FOR_DEFUNCT_JAVA_CMD);
+
+        //Command will 'exit 1' if a defunct java process is not running and 'exit 0' if there is
+        return exitCode == 0;
+    }
+
+
     private void shutdownJBoss() throws Exception {
         runShellCommand(SHUTDOWN_JBOSS_CMD);
 
@@ -105,4 +119,4 @@
         runShellCommand("ps aux > " + logFile);
         logger.info("Logged current running processes to: " + logFile);
     }
-}
+}
\ No newline at end of file



More information about the jboss-svn-commits mailing list