You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by lp...@apache.org on 2022/04/30 15:05:18 UTC
[hive] branch master updated: HIVE-26167: QueryStateMap is SessionState is not maintained correctly. (#3234) (Laszlo Pinter, reviewed by Peter Vary)
This is an automated email from the ASF dual-hosted git repository.
lpinter pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new de44b3727f HIVE-26167: QueryStateMap is SessionState is not maintained correctly. (#3234) (Laszlo Pinter, reviewed by Peter Vary)
de44b3727f is described below
commit de44b3727f3de57e21d5a6f6f7597796814f4f00
Author: László Pintér <47...@users.noreply.github.com>
AuthorDate: Sat Apr 30 17:05:06 2022 +0200
HIVE-26167: QueryStateMap is SessionState is not maintained correctly. (#3234) (Laszlo Pinter, reviewed by Peter Vary)
---
ql/src/java/org/apache/hadoop/hive/ql/Driver.java | 28 +++++++++++++++--------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
index 5417402a1a..a475b4eb2b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -22,6 +22,7 @@ import java.io.DataInput;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
+import java.util.Map;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.hive.common.ValidTxnList;
@@ -116,9 +117,6 @@ public class Driver implements IDriver {
driverContext = new DriverContext(queryState, queryInfo, new HookRunner(queryState.getConf(), CONSOLE),
txnManager);
driverTxnHandler = new DriverTxnHandler(driverContext, driverState);
- if (SessionState.get() != null) {
- SessionState.get().addQueryState(getConf().get(HiveConf.ConfVars.HIVEQUERYID.varname), queryState);
- }
}
@Override
@@ -214,12 +212,6 @@ public class Driver implements IDriver {
} else {
releaseResources();
}
-
- if (SessionState.get() != null) {
- // Remove any query state reference from the session state
- SessionState.get().removeQueryState(getConf().get(HiveConf.ConfVars.HIVEQUERYID.varname));
- }
-
driverState.executionFinishedWithLocking(isFinishedWithError);
}
@@ -430,7 +422,6 @@ public class Driver implements IDriver {
if (metrics != null) {
metrics.incrementCounter(MetricsConstant.WAITING_COMPILE_OPS, 1);
}
-
PerfLogger perfLogger = SessionState.getPerfLogger(true);
perfLogger.perfLogBegin(CLASS_NAME, PerfLogger.WAIT_COMPILE);
@@ -531,6 +522,11 @@ public class Driver implements IDriver {
context.setHDFSCleanup(true);
driverTxnHandler.setContext(context);
+
+ if (SessionState.get() != null) {
+ QueryState queryState = getQueryState();
+ SessionState.get().addQueryState(queryState.getQueryId(), queryState);
+ }
}
private void setQueryId() {
@@ -813,6 +809,18 @@ public class Driver implements IDriver {
}
context = null;
}
+
+ if (SessionState.get() != null) {
+ QueryState queryState = getQueryState();
+ // If the driver object is reused for several queries, make sure we empty the HMS query cache
+ Map<Object, Object> queryCache = SessionState.get().getQueryCache(queryState.getQueryId());
+ if (queryCache != null) {
+ queryCache.clear();
+ }
+ queryState.disableHMSCache();
+ // Remove any query state reference from the session state
+ SessionState.get().removeQueryState(queryState.getQueryId());
+ }
} catch (Exception e) {
LOG.debug("Exception while clearing the context ", e);
}