You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by mo...@apache.org on 2015/04/30 12:54:24 UTC

incubator-zeppelin git commit: Fix process creation behavior

Repository: incubator-zeppelin
Updated Branches:
  refs/heads/master a0428f06d -> b33bf5000


Fix process creation behavior

#52 introduces new side effect around creation of interpreter process.
As a result, some functions, such as 'z.run(2)' wouldn't able to run.

This includes fix and unit test.

Author: Lee moon soo <mo...@apache.org>

Closes #57 from Leemoonsoo/fix_process_creation and squashes the following commits:

018af91 [Lee moon soo] make code clean
0379410 [Lee moon soo] Fix process creation behavior


Project: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/commit/b33bf500
Tree: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/tree/b33bf500
Diff: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/diff/b33bf500

Branch: refs/heads/master
Commit: b33bf5000f667c6e258477b66b6fc0b3615516dd
Parents: a0428f0
Author: Lee moon soo <mo...@apache.org>
Authored: Thu Apr 30 10:15:08 2015 +0900
Committer: Lee moon soo <mo...@apache.org>
Committed: Thu Apr 30 19:54:15 2015 +0900

----------------------------------------------------------------------
 .../interpreter/remote/RemoteInterpreter.java   | 23 ++++++++++----------
 .../remote/RemoteInterpreterTest.java           | 21 ++++++++++++++++++
 2 files changed, 33 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/b33bf500/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java
----------------------------------------------------------------------
diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java
index fbadce9..4f1e262 100644
--- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java
+++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java
@@ -324,18 +324,19 @@ public class RemoteInterpreter extends Interpreter {
     super.setInterpreterGroup(interpreterGroup);
 
     synchronized (interpreterGroupReference) {
-      if (interpreterGroupReference
-          .containsKey(getInterpreterGroupKey(interpreterGroup))) {
-        interpreterGroupReference.remove(getInterpreterGroupKey(interpreterGroup));
+      RemoteInterpreterProcess intpProcess = interpreterGroupReference
+          .get(getInterpreterGroupKey(interpreterGroup));
+
+      // when interpreter process is not created or terminated
+      if (intpProcess == null || (!intpProcess.isRunning() && intpProcess.getPort() > 0)) {
+        interpreterGroupReference.put(getInterpreterGroupKey(interpreterGroup),
+            new RemoteInterpreterProcess(interpreterRunner,
+                interpreterPath, env, interpreterContextRunnerPool));
+
+        logger.info("setInterpreterGroup = "
+            + getInterpreterGroupKey(interpreterGroup) + " class=" + className
+            + ", path=" + interpreterPath);
       }
-
-      interpreterGroupReference.put(getInterpreterGroupKey(interpreterGroup),
-          new RemoteInterpreterProcess(interpreterRunner,
-              interpreterPath, env, interpreterContextRunnerPool));
-
-      logger.info("setInterpreterGroup = "
-          + getInterpreterGroupKey(interpreterGroup) + " class=" + className
-          + ", path=" + interpreterPath);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/b33bf500/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterTest.java
----------------------------------------------------------------------
diff --git a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterTest.java b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterTest.java
index e743eab..0661bfa 100644
--- a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterTest.java
+++ b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterTest.java
@@ -457,4 +457,25 @@ public class RemoteInterpreterTest {
 
     intpA.close();
   }
+
+  @Test
+  public void testProcessCreation() {
+    Properties p = new Properties();
+
+    RemoteInterpreter intpA = new RemoteInterpreter(
+        p,
+        MockInterpreterA.class.getName(),
+        new File("../bin/interpreter.sh").getAbsolutePath(),
+        "fake",
+        env
+        );
+
+    intpA.setInterpreterGroup(intpGroup);
+    RemoteInterpreterProcess processA = intpA.getInterpreterProcess();
+
+    intpA.setInterpreterGroup(new InterpreterGroup(intpA.getInterpreterGroup().getId()));
+    RemoteInterpreterProcess processB = intpA.getInterpreterProcess();
+
+    assertEquals(processA.hashCode(), processB.hashCode());
+  }
 }