You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by pd...@apache.org on 2021/10/25 07:23:06 UTC
[zeppelin] 02/04: Restart interpreter process if not running
This is an automated email from the ASF dual-hosted git repository.
pdallig pushed a commit to branch recover_interpretergroup
in repository https://gitbox.apache.org/repos/asf/zeppelin.git
commit 66064de17102f378261c3b6f90c257f735f7e887
Author: Philipp Dallig <ph...@gmail.com>
AuthorDate: Thu Oct 21 15:56:13 2021 +0200
Restart interpreter process if not running
---
.../org/apache/zeppelin/interpreter/ManagedInterpreterGroup.java | 7 +++++++
.../org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java | 8 ++++----
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/ManagedInterpreterGroup.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/ManagedInterpreterGroup.java
index fb17542..af7e7e8 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/ManagedInterpreterGroup.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/ManagedInterpreterGroup.java
@@ -61,6 +61,12 @@ public class ManagedInterpreterGroup extends InterpreterGroup {
Properties properties)
throws IOException {
synchronized (interpreterProcessCreationLock) {
+ // Stop the interpreterProcess to cleanup the state if not running
+ if (remoteInterpreterProcess != null && !remoteInterpreterProcess.isRunning()) {
+ LOGGER.info("InterpreterProcess for InterpreterGroup {} is not running. Stop the interpreter process to clean up the state. Error message: {}", getId(), remoteInterpreterProcess.getErrorMessage());
+ remoteInterpreterProcess.stop();
+ remoteInterpreterProcess = null;
+ }
if (remoteInterpreterProcess == null) {
LOGGER.info("Create InterpreterProcess for InterpreterGroup: {}", getId());
remoteInterpreterProcess = interpreterSetting.createInterpreterProcess(id, userName,
@@ -183,6 +189,7 @@ public class ManagedInterpreterGroup extends InterpreterGroup {
}
}
+ @Override
public boolean isEmpty() {
return this.sessions.isEmpty();
}
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java
index 16e47c3..439bf0b 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreter.java
@@ -96,7 +96,7 @@ public class RemoteInterpreter extends Interpreter {
}
public synchronized RemoteInterpreterProcess getOrCreateInterpreterProcess() throws IOException {
- if (this.interpreterProcess != null) {
+ if (this.interpreterProcess != null && this.interpreterProcess.isRunning()) {
return this.interpreterProcess;
}
ManagedInterpreterGroup intpGroup = getInterpreterGroup();
@@ -125,9 +125,9 @@ public class RemoteInterpreter extends Interpreter {
((RemoteInterpreter) interpreter).internal_create();
}
} catch (IOException e) {
- LOGGER.error("Interpreter creation failed", e);
- interpreterProcess = null;
- getInterpreterGroup().close(sessionId);
+// LOGGER.error("Interpreter creation failed", e);
+// interpreterProcess = null;
+// getInterpreterGroup().close(sessionId);
throw new InterpreterException(e);
}
}