[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