HIVE-16114 : NullPointerException in TezSessionPoolManager when getting the 
session (Zhihua Deng, reviewed by Sergey Shelukhin)


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

Branch: refs/heads/hive-14535
Commit: 348a592154be07045bd58ff23134dc78e95de16a
Parents: bfe930c
Author: Sergey Shelukhin <ser...@apache.org>
Authored: Wed Mar 8 17:37:07 2017 -0800
Committer: Sergey Shelukhin <ser...@apache.org>
Committed: Wed Mar 8 17:37:07 2017 -0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java | 2 +-
 ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java       | 3 +++
 .../org/apache/hadoop/hive/ql/exec/tez/SampleTezSessionState.java | 1 +
 3 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/348a5921/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java
index 68ad024..8f45947 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java
@@ -480,7 +480,7 @@ public class TezSessionPoolManager {
    */
   private static boolean canWorkWithSameSession(TezSessionState session, 
HiveConf conf)
        throws HiveException {
-    if (session == null || conf == null) {
+    if (session == null || conf == null || !session.isOpen()) {
       return false;
     }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/348a5921/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java
index 740e41b..6c8bf29 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java
@@ -137,6 +137,9 @@ public class TezTask extends Task<TezWork> {
       // Need to remove this static hack. But this is the way currently to get 
a session.
       SessionState ss = SessionState.get();
       session = ss.getTezSession();
+      if (session != null && !session.isOpen()) {
+        LOG.warn("The session: " + session + " has not been opened");
+      }
       session = TezSessionPoolManager.getInstance().getSession(
           session, conf, false, getWork().getLlapMode());
       ss.setTezSession(session);

http://git-wip-us.apache.org/repos/asf/hive/blob/348a5921/ql/src/test/org/apache/hadoop/hive/ql/exec/tez/SampleTezSessionState.java
----------------------------------------------------------------------
diff --git 
a/ql/src/test/org/apache/hadoop/hive/ql/exec/tez/SampleTezSessionState.java 
b/ql/src/test/org/apache/hadoop/hive/ql/exec/tez/SampleTezSessionState.java
index 6f5aa54..2d1c687 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/exec/tez/SampleTezSessionState.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/tez/SampleTezSessionState.java
@@ -65,6 +65,7 @@ public class SampleTezSessionState extends 
TezSessionPoolSession {
     UserGroupInformation ugi = Utils.getUGI();
     user = ugi.getShortUserName();
     this.doAsEnabled = 
conf.getBoolVar(HiveConf.ConfVars.HIVE_SERVER2_ENABLE_DOAS);
+    setOpen(true);
   }
 
   @Override

Reply via email to