Repository: hive
Updated Branches:
  refs/heads/master 6d713b656 -> 840dd431f


HIVE-20862: QueryId no longer shows up in the logs (Eugene Koifman reviewed by 
Vaibhav Gumashta)


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

Branch: refs/heads/master
Commit: 840dd431f3772772fc57060e27e3f2bee72a8936
Parents: 6d713b6
Author: Eugene Koifman <ekoif...@apache.org>
Authored: Wed Nov 7 17:11:14 2018 -0800
Committer: Eugene Koifman <ekoif...@apache.org>
Committed: Wed Nov 7 17:11:14 2018 -0800

----------------------------------------------------------------------
 ql/src/java/org/apache/hadoop/hive/ql/Driver.java      | 13 ++++++++-----
 .../apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java  |  2 +-
 .../apache/hadoop/hive/ql/session/SessionState.java    |  1 +
 .../hadoop/hive/metastore/txn/TxnCommonUtils.java      |  1 +
 4 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/840dd431/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
----------------------------------------------------------------------
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 ff5086a..57f71a8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -543,7 +543,8 @@ public class Driver implements IDriver {
 
     LockedDriverState.setLockedDriverState(lDrvState);
 
-    String queryId = queryState.getQueryId();
+    final String queryId = Strings.isNullOrEmpty(queryState.getQueryId()) ?
+        QueryPlan.makeQueryId() : queryState.getQueryId();
 
     SparkSession ss = SessionState.get().getSparkSession();
     if (ss != null) {
@@ -1484,7 +1485,7 @@ public class Driver implements IDriver {
         throw new LockException("Unexpected tables in compaction: " + 
txnTables);
       }
       String fullTableName = txnTables.get(0);
-      txnWriteIds = new ValidTxnWriteIdList(0L); // No transaction for the 
compaction for now.
+      txnWriteIds = new ValidTxnWriteIdList(0L); // No transaction for the 
compaction for now. todo: Since MM compaction is a query, a txn has been opened 
at this point
       txnWriteIds.addTableValidWriteIdList(compactionWriteIds);
     } else {
       txnWriteIds = txnMgr.getValidWriteIds(txnTables, txnString);
@@ -1672,8 +1673,10 @@ public class Driver implements IDriver {
       queryTxnMgr.acquireLocks(plan, ctx, userFromUGI, lDrvState);
       // This check is for controlling the correctness of the current state
       if (queryTxnMgr.recordSnapshot(plan) && !validTxnListsGenerated) {
-        throw new IllegalStateException("calling recordValidTxn() more than 
once in the same " +
-            JavaUtils.txnIdToString(queryTxnMgr.getCurrentTxnId()));
+        throw new IllegalStateException(
+            "Need to record valid WriteID list but there is no valid TxnID 
list (" +
+                JavaUtils.txnIdToString(queryTxnMgr.getCurrentTxnId()) +
+                ", queryId:" + plan.getQueryId() + ")");
       }
 
       if (plan.hasAcidResourcesInQuery() || hasAcidDdl) {
@@ -2230,7 +2233,7 @@ public class Driver implements IDriver {
     }
     Metrics metrics = MetricsFactory.getInstance();
 
-    String queryId = queryState.getQueryId();
+    String queryId = plan.getQueryId();
     // Get the query string from the conf file as the compileInternal() method 
might
     // hide sensitive information during query redaction.
     String queryStr = conf.getQueryString();

http://git-wip-us.apache.org/repos/asf/hive/blob/840dd431/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java 
b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java
index ba1f1ff..12c1027 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java
@@ -262,7 +262,7 @@ public interface HiveTxnManager {
 
   /**
    * For resources that support MVCC, the state of the DB must be recorded for 
the duration of the
-   * operation/transaction.  Returns {@code true} if current statment needs to 
do this.
+   * operation/transaction.  Returns {@code true} if current statement needs 
to do this.
    */
   boolean recordSnapshot(QueryPlan queryPlan);
 

http://git-wip-us.apache.org/repos/asf/hive/blob/840dd431/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java 
b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
index ee7c940..455ffc3 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
@@ -501,6 +501,7 @@ public class SessionState {
    * it's not coupled to the executing thread.  Since tests run against Derby 
which often wedges
    * under concurrent access, tests must use a single thead and simulate 
concurrent access.
    * For example, {@code TestDbTxnManager2}
+   * @return previous {@link HiveTxnManager} or null
    */
   @VisibleForTesting
   public HiveTxnManager setTxnMgr(HiveTxnManager mgr) {

http://git-wip-us.apache.org/repos/asf/hive/blob/840dd431/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnCommonUtils.java
----------------------------------------------------------------------
diff --git 
a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnCommonUtils.java
 
b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnCommonUtils.java
index 94cb18d..c61a997 100644
--- 
a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnCommonUtils.java
+++ 
b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnCommonUtils.java
@@ -41,6 +41,7 @@ public class TxnCommonUtils {
    * @return a valid txn list.
    */
   public static ValidTxnList createValidReadTxnList(GetOpenTxnsResponse txns, 
long currentTxn) {
+    assert currentTxn <= txns.getTxn_high_water_mark();
     /*
      * The highWaterMark should be 
min(currentTxn,txns.getTxn_high_water_mark()) assuming currentTxn>0
      * otherwise if currentTxn=7 and 8 commits before 7, then 7 will see 
result of 8 which

Reply via email to