You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by as...@apache.org on 2018/01/24 08:57:41 UTC

oozie git commit: OOZIE-2775 Oozie server does not stop if there is an exception during service initalization at startup (asasvari)

Repository: oozie
Updated Branches:
  refs/heads/master 823ddbe64 -> 53b2f26bc


OOZIE-2775 Oozie server does not stop if there is an exception during service initalization at startup (asasvari)


Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/53b2f26b
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/53b2f26b
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/53b2f26b

Branch: refs/heads/master
Commit: 53b2f26bcae9b0ccabf224c4d08680bb0bc968b7
Parents: 823ddbe
Author: Attila Sasvari <as...@cloudera.com>
Authored: Wed Jan 24 09:57:30 2018 +0100
Committer: Attila Sasvari <as...@cloudera.com>
Committed: Wed Jan 24 09:57:30 2018 +0100

----------------------------------------------------------------------
 .../java/org/apache/oozie/service/Services.java |  2 +-
 release-log.txt                                 |  1 +
 .../oozie/server/EmbeddedOozieServer.java       | 37 ++++++++++++++++----
 .../oozie/server/guice/ServicesProvider.java    |  9 +++--
 4 files changed, 38 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/53b2f26b/core/src/main/java/org/apache/oozie/service/Services.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/service/Services.java b/core/src/main/java/org/apache/oozie/service/Services.java
index 1ca3bf5..7391605 100644
--- a/core/src/main/java/org/apache/oozie/service/Services.java
+++ b/core/src/main/java/org/apache/oozie/service/Services.java
@@ -304,7 +304,7 @@ public class Services {
                 setService(entry.getValue().getClass());
             }
         } catch (RuntimeException rex) {
-            log.fatal("Runtime Exception during Services Load. Check your list of '{0}' or '{1}'",
+            log.fatal("Runtime Exception during Services Load. Check your list of [{0}] or [{1}]",
                     CONF_SERVICE_CLASSES, CONF_SERVICE_EXT_CLASSES, rex);
             throw new ServiceException(ErrorCode.E0103, rex.getMessage(), rex);
         }

http://git-wip-us.apache.org/repos/asf/oozie/blob/53b2f26b/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 8f68ae9..38e4da2 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 5.0.0 release (trunk - unreleased)
 
+OOZIE-2775 Oozie server does not stop if there is an exception during service initalization at startup (asasvari) 
 OOZIE-3145 >git status< should be clean after >mvn test< was called (kmarton via gezapeti)
 OOZIE-3162 amend Precommit build fails to add comment to JIRA (asasvari)
 OOZIE-3159 Spark Action fails because of absence of hadoop mapreduce jar(s) (asasvari)

http://git-wip-us.apache.org/repos/asf/oozie/blob/53b2f26b/server/src/main/java/org/apache/oozie/server/EmbeddedOozieServer.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/oozie/server/EmbeddedOozieServer.java b/server/src/main/java/org/apache/oozie/server/EmbeddedOozieServer.java
index b6b59b6..a0c27b8 100644
--- a/server/src/main/java/org/apache/oozie/server/EmbeddedOozieServer.java
+++ b/server/src/main/java/org/apache/oozie/server/EmbeddedOozieServer.java
@@ -22,6 +22,7 @@ import com.google.common.base.Preconditions;
 import com.google.inject.Guice;
 import com.google.inject.Inject;
 import com.google.inject.Injector;
+import com.google.inject.ProvisionException;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.oozie.server.guice.OozieGuiceModule;
 import org.apache.oozie.service.ConfigurationService;
@@ -199,6 +200,19 @@ public class EmbeddedOozieServer {
         LOG.info("Server started.");
     }
 
+    public void shutdown() throws Exception {
+        LOG.info("Shutting down.");
+        if (serviceController != null) {
+            serviceController.destroy();
+            LOG.info("Oozie services stopped.");
+        }
+
+        if (server != null) {
+            server.stop();
+            LOG.info("Server stopped.");
+        }
+    }
+
     public void join() throws InterruptedException {
         server.join();
     }
@@ -206,9 +220,11 @@ public class EmbeddedOozieServer {
     public void addShutdownHook() {
         Runtime.getRuntime().addShutdownHook(new Thread() {
             public void run() {
-                LOG.info("Shutting down.");
-                serviceController.destroy();
-                LOG.info("Oozie services stopped.");
+                try {
+                    shutdown();
+                } catch (final Exception e) {
+                    LOG.error(String.format("There were errors during shutdown. Error message: %s", e.getMessage()));
+                }
             }
         });
     }
@@ -216,14 +232,21 @@ public class EmbeddedOozieServer {
     public static void main(String[] args) throws Exception {
         final Injector guiceInjector = Guice.createInjector(new OozieGuiceModule());
 
-        final EmbeddedOozieServer embeddedOozieServer = guiceInjector.getInstance(EmbeddedOozieServer.class);
+        EmbeddedOozieServer embeddedOozieServer = null;
+        try {
+            embeddedOozieServer = guiceInjector.getInstance(EmbeddedOozieServer.class);
+        }
+        catch (final ProvisionException ex) {
+            LOG.error(ex.getMessage());
+            System.exit(1);
+        }
 
-        embeddedOozieServer.setup();
         embeddedOozieServer.addShutdownHook();
+        embeddedOozieServer.setup();
         try {
             embeddedOozieServer.start();
-        } catch (Exception e) {
-            LOG.error("Could not start EmbeddedOozieServer!", e);
+        } catch (final Exception e) {
+            LOG.error(String.format("Could not start EmbeddedOozieServer! Error message: %s", e.getMessage()));
             System.exit(1);
         }
         embeddedOozieServer.join();

http://git-wip-us.apache.org/repos/asf/oozie/blob/53b2f26b/server/src/main/java/org/apache/oozie/server/guice/ServicesProvider.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/oozie/server/guice/ServicesProvider.java b/server/src/main/java/org/apache/oozie/server/guice/ServicesProvider.java
index cc4ed17..5e1f533 100644
--- a/server/src/main/java/org/apache/oozie/server/guice/ServicesProvider.java
+++ b/server/src/main/java/org/apache/oozie/server/guice/ServicesProvider.java
@@ -25,14 +25,17 @@ import org.apache.oozie.service.Services;
 class ServicesProvider implements Provider<Services> {
     @Override
     public Services get() {
+        Services oozieServices = null;
         try {
-            final Services oozieServices = new Services();
-
+            oozieServices = new Services();
             oozieServices.init();
 
             return oozieServices;
         } catch (ServiceException e) {
-            throw new ExceptionInInitializerError(
+            if (oozieServices != null) {
+                oozieServices.destroy();
+            }
+            throw new IllegalStateException(
                     String.format("Could not instantiate Oozie services. [e.message=%s]", e.getMessage()));
         }
     }