From 9e025199c655504e39dd7e3cba6f06e5eb9737ed Mon Sep 17 00:00:00 2001 From: kaka11chen Date: Sat, 22 Jun 2024 22:26:50 +0800 Subject: [PATCH] [Fix](multi-catalog) Fix the transaction is not removed in abnormal situations by removing transaction in finally block. --- .../apache/doris/transaction/HiveTransactionManager.java | 7 +++++-- .../doris/transaction/IcebergTransactionManager.java | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/transaction/HiveTransactionManager.java b/fe/fe-core/src/main/java/org/apache/doris/transaction/HiveTransactionManager.java index 838d135fa45769..c48210ad452ad9 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/transaction/HiveTransactionManager.java +++ b/fe/fe-core/src/main/java/org/apache/doris/transaction/HiveTransactionManager.java @@ -59,8 +59,11 @@ public void commit(long id) throws UserException { @Override public void rollback(long id) { - getTransactionWithException(id).rollback(); - transactions.remove(id); + try { + getTransactionWithException(id).rollback(); + } finally { + transactions.remove(id); + } } @Override diff --git a/fe/fe-core/src/main/java/org/apache/doris/transaction/IcebergTransactionManager.java b/fe/fe-core/src/main/java/org/apache/doris/transaction/IcebergTransactionManager.java index f4b802aaa99334..f373c13368558f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/transaction/IcebergTransactionManager.java +++ b/fe/fe-core/src/main/java/org/apache/doris/transaction/IcebergTransactionManager.java @@ -51,8 +51,11 @@ public void commit(long id) throws UserException { @Override public void rollback(long id) { - getTransactionWithException(id).rollback(); - transactions.remove(id); + try { + getTransactionWithException(id).rollback(); + } finally { + transactions.remove(id); + } } @Override