Repository: tajo
Updated Branches:
  refs/heads/master 821fc172b -> ce4423436


TAJO-1753: GlobalEngine causes NPE occurs occasionally.

Closes #882


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

Branch: refs/heads/master
Commit: ce44234365c585c1f1444aa2b00aaf12e96de229
Parents: 821fc17
Author: Jinho Kim <[email protected]>
Authored: Mon Nov 30 16:21:32 2015 +0900
Committer: Jinho Kim <[email protected]>
Committed: Mon Nov 30 16:21:32 2015 +0900

----------------------------------------------------------------------
 CHANGES                                                     | 2 ++
 .../src/main/java/org/apache/tajo/master/GlobalEngine.java  | 9 +++++----
 .../src/main/java/org/apache/tajo/master/TajoMaster.java    | 4 ++--
 3 files changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/ce442343/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 838ab65..6ee3db4 100644
--- a/CHANGES
+++ b/CHANGES
@@ -46,6 +46,8 @@ Release 0.12.0 - unreleased
 
   BUG FIXES
 
+    TAJO-1753: GlobalEngine causes NPE occurs occasionally. (jinho)
+
     TAJO-1862: TSQL gives user wrong URL of documentation. 
     (Contributed by Dongkyu Hwangbo, committed by hyunsik)
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/ce442343/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java 
b/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
index 1966244..7f18fd4 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
@@ -36,13 +36,13 @@ import org.apache.tajo.catalog.CatalogService;
 import org.apache.tajo.catalog.Schema;
 import org.apache.tajo.catalog.TableDesc;
 import org.apache.tajo.conf.TajoConf;
-import org.apache.tajo.parser.sql.SQLAnalyzer;
 import org.apache.tajo.engine.query.QueryContext;
 import org.apache.tajo.exception.*;
 import org.apache.tajo.master.TajoMaster.MasterContext;
 import org.apache.tajo.master.exec.DDLExecutor;
 import org.apache.tajo.master.exec.QueryExecutor;
 import org.apache.tajo.metrics.Master;
+import org.apache.tajo.parser.sql.SQLAnalyzer;
 import org.apache.tajo.plan.LogicalOptimizer;
 import org.apache.tajo.plan.LogicalPlan;
 import org.apache.tajo.plan.LogicalPlanner;
@@ -54,6 +54,7 @@ import org.apache.tajo.plan.verifier.*;
 import org.apache.tajo.session.Session;
 import org.apache.tajo.storage.TablespaceManager;
 import org.apache.tajo.util.CommonTestingUtil;
+import org.apache.tajo.util.metrics.TajoSystemMetrics;
 
 import java.sql.SQLException;
 import java.util.concurrent.ExecutionException;
@@ -176,9 +177,9 @@ public class GlobalEngine extends AbstractService {
     LOG.info("Query: " + query);
     QueryContext queryContext = createQueryContext(session);
     Expr planningContext;
-
+    TajoSystemMetrics metrics = context.getMetrics();
     try {
-      context.getMetrics().counter(Master.Query.SUBMITTED).inc();
+      if(metrics != null) metrics.counter(Master.Query.SUBMITTED).inc();
 
       if (isJson) {
         planningContext = buildExpressionFromJson(query);
@@ -195,7 +196,7 @@ public class GlobalEngine extends AbstractService {
     } catch (Throwable t) {
       ExceptionUtil.printStackTraceIfError(LOG, t);
 
-      context.getMetrics().counter(Master.Query.ERROR).inc();
+      if(metrics != null) metrics.counter(Master.Query.ERROR).inc();
 
       SubmitQueryResponse.Builder responseBuilder = 
SubmitQueryResponse.newBuilder();
       responseBuilder.setUserName(queryContext.get(SessionVars.USERNAME));

http://git-wip-us.apache.org/repos/asf/tajo/blob/ce442343/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java 
b/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
index a8a84fe..a74573e 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
@@ -203,7 +203,7 @@ public class TajoMaster extends CompositeService {
     addIfService(restServer);
 
     PythonScriptEngine.initPythonScriptEngineFiles();
-    
+
     // Try to start up all services in TajoMaster.
     // If anyone is failed, the master prints out the errors and immediately 
should shutdowns
     try {
@@ -322,6 +322,7 @@ public class TajoMaster extends CompositeService {
     checkBaseTBSpaceAndDatabase();
 
     super.serviceStart();
+    initSystemMetrics();
 
     // Setting the system global configs
     systemConf.setSocketAddr(ConfVars.CATALOG_ADDRESS.varname,
@@ -334,7 +335,6 @@ public class TajoMaster extends CompositeService {
     }
 
     initWebServer();
-    initSystemMetrics();
 
     haService = ServiceTrackerFactory.get(systemConf);
     haService.register();

Reply via email to