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