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;
   }
 }