This is an automated email from the ASF dual-hosted git repository. zjffdu pushed a commit to branch branch-0.10 in repository https://gitbox.apache.org/repos/asf/zeppelin.git
commit 88bf9b135ee858d1b929ac663f6381374e7e6e70 Author: Jeff Zhang <zjf...@apache.org> AuthorDate: Tue Dec 7 23:56:50 2021 +0800 [ZEPPELIN-5604] Interpreter scheduler may not be shutdown properly --- .github/workflows/core.yml | 21 +++++++++++++--- .../interpreter/ManagedInterpreterGroup.java | 29 +++++++++++----------- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 29c2a0b..6757179 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -62,6 +62,8 @@ jobs: channel-priority: strict - name: Make IRkernel available to Jupyter run: | + R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')" + R -e "devtools::install_github('IRkernel/IRkernel')" R -e "IRkernel::installspec()" conda list conda info @@ -103,6 +105,8 @@ jobs: auto-activate-base: false - name: Make IRkernel available to Jupyter run: | + R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')" + R -e "devtools::install_github('IRkernel/IRkernel')" R -e "IRkernel::installspec()" - name: verify interpreter run: mvn verify -DskipRat -am -pl .,zeppelin-interpreter,zeppelin-interpreter-shaded,${INTERPRETERS} -Pscala-2.10 -B @@ -136,6 +140,8 @@ jobs: auto-activate-base: false - name: Make IRkernel available to Jupyter run: | + R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')" + R -e "devtools::install_github('IRkernel/IRkernel')" R -e "IRkernel::installspec()" - name: install environment run: | @@ -211,6 +217,8 @@ jobs: auto-activate-base: false - name: Make IRkernel available to Jupyter run: | + R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')" + R -e "devtools::install_github('IRkernel/IRkernel')" R -e "IRkernel::installspec()" - name: install environment run: | @@ -252,6 +260,8 @@ jobs: auto-activate-base: false - name: Make IRkernel available to Jupyter run: | + R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')" + R -e "devtools::install_github('IRkernel/IRkernel')" R -e "IRkernel::installspec()" - name: install environment run: | @@ -290,6 +300,8 @@ jobs: auto-activate-base: false - name: Make IRkernel available to Jupyter run: | + R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')" + R -e "devtools::install_github('IRkernel/IRkernel')" R -e "IRkernel::installspec()" - name: install environment run: | @@ -331,6 +343,8 @@ jobs: auto-activate-base: false - name: Make IRkernel available to Jupyter run: | + R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')" + R -e "devtools::install_github('IRkernel/IRkernel')" R -e "IRkernel::installspec()" - name: install environment run: | @@ -372,6 +386,8 @@ jobs: auto-activate-base: false - name: Make IRkernel available to Jupyter run: | + R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')" + R -e "devtools::install_github('IRkernel/IRkernel')" R -e "IRkernel::installspec()" - name: install environment run: mvn install -DskipTests -DskipRat -pl spark-submit,spark/spark-dependencies -am -Pspark-3.1 -Pspark-scala-2.12 -Phadoop2 -B @@ -412,6 +428,8 @@ jobs: auto-activate-base: false - name: Make IRkernel available to Jupyter run: | + R -e "install.packages('devtools', repos = 'http://cran.us.r-project.org')" + R -e "devtools::install_github('IRkernel/IRkernel')" R -e "IRkernel::installspec()" - name: install environment run: mvn install -DskipTests -DskipRat -pl spark-submit,spark/spark-dependencies -am -Pspark-3.2 -Pspark-scala-2.12 -Phadoop2 -B @@ -446,9 +464,6 @@ jobs: environment-file: testing/env_python_3_with_R.yml python-version: 3.7 auto-activate-base: false - - name: Make IRkernel available to Jupyter - run: | - R -e "IRkernel::installspec()" - name: install environment run: | mvn install -DskipTests -DskipRat -pl livy -am -B 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..51aeab7 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 @@ -144,29 +144,28 @@ public class ManagedInterpreterGroup extends InterpreterGroup { private void closeInterpreter(Interpreter interpreter) { Scheduler scheduler = interpreter.getScheduler(); - - if (Boolean.parseBoolean( - interpreter.getProperty("zeppelin.interpreter.close.cancel_job", "true"))) { - for (final Job job : scheduler.getAllJobs()) { - if (!job.isTerminated()) { - job.abort(); - job.setStatus(Job.Status.ABORT); - LOGGER.info("Job {} aborted ", job.getJobName()); + try { + if (Boolean.parseBoolean( + interpreter.getProperty("zeppelin.interpreter.close.cancel_job", "true"))) { + for (final Job job : scheduler.getAllJobs()) { + if (!job.isTerminated()) { + job.abort(); + job.setStatus(Job.Status.ABORT); + LOGGER.info("Job {} aborted ", job.getJobName()); + } } + } else { + LOGGER.info("Keep job running while closing interpreter: {}", interpreter.getClassName()); } - } else { - LOGGER.info("Keep job running while closing interpreter: {}", interpreter.getClassName()); - } - try { LOGGER.info("Trying to close interpreter {}", interpreter.getClassName()); interpreter.close(); } catch (InterpreterException e) { LOGGER.warn("Fail to close interpreter {}", interpreter.getClassName(), e); + } finally { + //TODO(zjffdu) move the close of schedule to Interpreter + SchedulerFactory.singleton().removeScheduler(scheduler.getName()); } - - //TODO(zjffdu) move the close of schedule to Interpreter - SchedulerFactory.singleton().removeScheduler(scheduler.getName()); } public synchronized List<Interpreter> getOrCreateSession(String user, String sessionId) {