This is an automated email from the ASF dual-hosted git repository.

dengzh 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 d073994160f HIVE-28788: ObjectStore failed to commit the transaction 
could lead to connection starvation (#5661)
d073994160f is described below

commit d073994160f044cec72a0947299fcf816af8feef
Author: dengzh <[email protected]>
AuthorDate: Fri Mar 28 17:54:27 2025 +0800

    HIVE-28788: ObjectStore failed to commit the transaction could lead to 
connection starvation (#5661)
---
 .../apache/hadoop/hive/metastore/ObjectStore.java  | 27 +---------------------
 .../org/apache/hadoop/hive/metastore/RawStore.java | 11 ---------
 2 files changed, 1 insertion(+), 37 deletions(-)

diff --git 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java
 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java
index 13a5a64cfbd..f3fd213a162 100644
--- 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java
+++ 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java
@@ -560,24 +560,9 @@ public void shutdown() {
    */
   @Override
   public boolean openTransaction() {
-    return openTransaction(null);
-  }
-
-  /**
-   * Opens a new one or the one already created. Every call of this function 
must
-   * have corresponding commit or rollback function call.
-   *
-   * @param isolationLevel The transaction isolation level. Only possible to 
set on the first call.
-   * @return an active transaction
-   */
-  @Override
-  public boolean openTransaction(String isolationLevel) {
     openTrasactionCalls++;
     if (openTrasactionCalls == 1) {
       currentTransaction = pm.currentTransaction();
-      if (isolationLevel != null) {
-        currentTransaction.setIsolationLevel(isolationLevel);
-      }
       currentTransaction.begin();
       transactionStatus = TXN_STATUS.OPEN;
     } else {
@@ -587,16 +572,10 @@ public boolean openTransaction(String isolationLevel) {
         throw new RuntimeException("openTransaction called in an interior"
             + " transaction scope, but currentTransaction is not active.");
       }
-
-      // Can not change the isolation level on an already open transaction
-      if (isolationLevel != null && 
!isolationLevel.equals(currentTransaction.getIsolationLevel())) {
-        throw new RuntimeException("Can not set isolation level on an open 
transaction");
-      }
     }
 
     boolean result = currentTransaction.isActive();
-    debugLog("Open transaction: count = " + openTrasactionCalls + ", isActive 
= " + result + ", isolationLevel = "
-            + currentTransaction.getIsolationLevel());
+    debugLog("Open transaction: count = " + openTrasactionCalls + ", isActive 
= " + result);
     return result;
   }
 
@@ -677,10 +656,6 @@ public boolean isActiveTransaction() {
    */
   @Override
   public void rollbackTransaction() {
-    if (openTrasactionCalls < 1) {
-      debugLog("rolling back transaction: no open transactions: " + 
openTrasactionCalls);
-      return;
-    }
     debugLog("Rollback transaction, isActive: " + isActiveTransaction());
     try {
       if (isActiveTransaction() && transactionStatus != TXN_STATUS.ROLLBACK) {
diff --git 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/RawStore.java
 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/RawStore.java
index 61e6ae93039..6a44bf239ce 100644
--- 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/RawStore.java
+++ 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/RawStore.java
@@ -140,17 +140,6 @@ public interface RawStore extends Configurable {
    */
   boolean openTransaction();
 
-  /**
-   * Opens a new one or the one already created. Every call of this function 
must
-   * have corresponding commit or rollback function call.
-   *
-   * @param isolationLevel The transaction isolation level. Only possible to 
set on the first call.
-   * @return an active transaction
-   */
-  default boolean openTransaction(String isolationLevel) {
-    throw new UnsupportedOperationException("Setting isolation level for this 
Store is not supported");
-  }
-
   /**
    * if this is the commit of the first open call then an actual commit is
    * called.

Reply via email to