You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2014/06/02 20:11:56 UTC
[5/8] git commit: SLIDER-94 TestForkedProcessService verifies that an
error code is uprated to a service failure
SLIDER-94 TestForkedProcessService verifies that an error code is uprated to a service failure
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/37703700
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/37703700
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/37703700
Branch: refs/heads/develop
Commit: 37703700523194ef9c266e2792e215bf6152f675
Parents: 4fb479d
Author: Steve Loughran <st...@apache.org>
Authored: Mon Jun 2 17:35:40 2014 +0100
Committer: Steve Loughran <st...@apache.org>
Committed: Mon Jun 2 17:36:26 2014 +0100
----------------------------------------------------------------------
.../server/services/workflow/ForkedProcessService.java | 4 +++-
.../slider/server/services/workflow/LongLivedProcess.java | 10 +++++++---
.../services/workflow/TestForkedProcessService.java | 6 +++++-
.../server/services/workflow/TestLongLivedProcess.java | 3 ---
4 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/37703700/slider-core/src/main/java/org/apache/slider/server/services/workflow/ForkedProcessService.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/services/workflow/ForkedProcessService.java b/slider-core/src/main/java/org/apache/slider/server/services/workflow/ForkedProcessService.java
index 3e9ce93..b5459da 100644
--- a/slider-core/src/main/java/org/apache/slider/server/services/workflow/ForkedProcessService.java
+++ b/slider-core/src/main/java/org/apache/slider/server/services/workflow/ForkedProcessService.java
@@ -33,7 +33,9 @@ import java.util.concurrent.atomic.AtomicInteger;
/**
* Service wrapper for an external program that is launched and can/will terminate.
* This service is notified when the subprocess terminates, and stops itself
- * and converts a non-zero exit code into a failure exception
+ * and converts a non-zero exit code into a failure exception.
+ *
+ *
*/
public class ForkedProcessService extends AbstractWorkflowExecutorService implements
LongLivedProcessLifecycleEvent, Runnable {
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/37703700/slider-core/src/main/java/org/apache/slider/server/services/workflow/LongLivedProcess.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/services/workflow/LongLivedProcess.java b/slider-core/src/main/java/org/apache/slider/server/services/workflow/LongLivedProcess.java
index b46fcd0..fe895e9 100644
--- a/slider-core/src/main/java/org/apache/slider/server/services/workflow/LongLivedProcess.java
+++ b/slider-core/src/main/java/org/apache/slider/server/services/workflow/LongLivedProcess.java
@@ -39,15 +39,19 @@ import java.util.concurrent.TimeUnit;
/**
* Execute a long-lived process.
*
+ * <p>
* Hadoop's {@link org.apache.hadoop.util.Shell} class assumes it is executing
* a short lived application; this class allows for the process to run for the
* life of the Java process that forked it.
- *
- * Key Features
+ * It is designed to be embedded inside a YARN service, though this is not
+ * the sole way that it can be used
+ * <p>
+ * Key Features:
* <ol>
* <li>Output is streamed to the output logger provided</li>.
* <li>The most recent lines of output are saved to a linked list</li>.
- * <li>A callback, {@link LongLivedProcessLifecycleEvent}, is raised on</li>
+ * <li>A synchronous callback, {@link LongLivedProcessLifecycleEvent}, is raised on the start
+ * and finish of a process.</li>
* </ol>
*
*/
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/37703700/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestForkedProcessService.java
----------------------------------------------------------------------
diff --git a/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestForkedProcessService.java b/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestForkedProcessService.java
index a1d5450..1ac89a5 100644
--- a/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestForkedProcessService.java
+++ b/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestForkedProcessService.java
@@ -69,6 +69,8 @@ public class TestForkedProcessService extends WorkflowServiceTestBase {
assertEquals(0, process.getExitCode());
assertStringInOutput("test-classes", getFinalOutput());
+ // assert that the service did not fail
+ assertNull(process.getFailureCause());
}
@Test
@@ -81,6 +83,9 @@ public class TestForkedProcessService extends WorkflowServiceTestBase {
assertTrue(exitCode != 0);
int corrected = process.getExitCodeSignCorrected();
assertEquals(1, corrected);
+ // assert that the exit code was uprated to a service failure
+ assertNotNull(process.getFailureCause());
+
}
@Test
@@ -111,7 +116,6 @@ public class TestForkedProcessService extends WorkflowServiceTestBase {
/**
* Get the final output. includes a quick sleep for the tail output
* @return the last output
- * @throws InterruptedException
*/
private List<String> getFinalOutput() {
return process.getRecentOutput();
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/37703700/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestLongLivedProcess.java
----------------------------------------------------------------------
diff --git a/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestLongLivedProcess.java b/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestLongLivedProcess.java
index c9172e2..c8a0719 100644
--- a/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestLongLivedProcess.java
+++ b/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestLongLivedProcess.java
@@ -45,7 +45,6 @@ public class TestLongLivedProcess extends WorkflowServiceTestBase implements
private File testDir = new File("target");
private ProcessCommandFactory commandFactory;
private volatile boolean started, stopped;
- private volatile int exitCode;
@Before
public void setupProcesses() {
@@ -129,7 +128,6 @@ public class TestLongLivedProcess extends WorkflowServiceTestBase implements
/**
* Get the final output. includes a quick sleep for the tail output
* @return the last output
- * @throws InterruptedException
*/
private List<String> getFinalOutput() {
return process.getRecentOutput();
@@ -157,7 +155,6 @@ public class TestLongLivedProcess extends WorkflowServiceTestBase implements
public void onProcessExited(LongLivedProcess process,
int exitCode,
int signCorrectedCode) {
- this.exitCode = exitCode;
stopped = true;
}
}