You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@iceberg.apache.org by "pvary (via GitHub)" <gi...@apache.org> on 2023/06/27 20:24:20 UTC

[GitHub] [iceberg] pvary commented on a diff in pull request #6648: Hive: Refactor commit lock mechanism from HiveTableOperations

pvary commented on code in PR #6648:
URL: https://github.com/apache/iceberg/pull/6648#discussion_r1244309776


##########
hive-metastore/src/main/java/org/apache/iceberg/hive/HiveTableOperations.java:
##########
@@ -339,26 +241,20 @@ protected void doCommit(TableMetadata base, TableMetadata metadata) {
         tbl.getParameters().remove(StatsSetupConst.COLUMN_STATS_ACCURATE);
       }
 
-      try {
-        if (hiveLockHeartbeat.future.isCancelled()
-            || hiveLockHeartbeat.encounteredException != null) {
-          throw new CommitFailedException(
-              "Failed to heartbeat for hive lock. %s",
-              hiveLockHeartbeat.encounteredException.getMessage());
-        }
+      lock.ensureActive();
 
+      try {
         persistTable(tbl, updateHiveTable);
-        if (hiveLockHeartbeat.future.isCancelled()
-            || hiveLockHeartbeat.encounteredException != null) {
-          throw new CommitStateUnknownException(
-              "Failed to heartbeat for hive lock while "
-                  + "committing changes. This can lead to a concurrent commit attempt be able to overwrite this commit. "
-                  + "Please check the commit history. If you are running into this issue, try reducing "
-                  + "iceberg.hive.lock-heartbeat-interval-ms.",
-              hiveLockHeartbeat.encounteredException);
-        }
+        lock.ensureActive();
 
         commitStatus = CommitStatus.SUCCESS;
+      } catch (LockException le) {
+        throw new CommitStateUnknownException(

Review Comment:
   Sounds right to me.
   @ConeyLiu: would you mind creating a PR for fixing this?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org