From 4dea3e49bdad3186dbce5fd10878f4bb9f86eac4 Mon Sep 17 00:00:00 2001 From: bobhan1 Date: Fri, 26 Dec 2025 11:53:42 +0800 Subject: [PATCH] fix --- .../doris/cloud/transaction/CloudGlobalTransactionMgr.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java b/fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java index aff9458f73bda3..59c73e5b8f8ab1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java @@ -425,6 +425,8 @@ public void commitTransactionWithoutLock(long dbId, List tableList, long } commitTransactionWithoutLock(dbId, tableList, transactionId, tabletCommitInfos, txnCommitAttachment, false, mowTableList, backendToPartitionInfos); + // clear signature after commit succeeds + clearTxnLastSignature(dbId, transactionId); } catch (Exception e) { if (!mowTableList.isEmpty()) { LOG.warn("commit txn {} failed, release delete bitmap lock, catch exception {}", transactionId, @@ -1491,6 +1493,8 @@ public boolean commitAndPublishTransaction(DatabaseIf db, long transactionId, } commitTransactionWithSubTxns(db.getId(), tableList, transactionId, subTransactionStates, mowTableList, backendToPartitionInfos); + // clear signature after commit succeeds + clearTxnLastSignature(db.getId(), transactionId); } catch (Exception e) { if (!mowTableList.isEmpty()) { LOG.warn("commit txn {} failed, release delete bitmap lock, catch exception {}", transactionId, @@ -1671,6 +1675,8 @@ public boolean commitAndPublishTransaction(DatabaseIf db, List
tableList, beforeCommitTransaction(tableList, transactionId, timeoutMillis); try { commitTransactionWithoutLock(db.getId(), tableList, transactionId, tabletCommitInfos, txnCommitAttachment); + // Only clear signature after commit succeeds, as BE may retry on failure + clearTxnLastSignature(db.getId(), transactionId); } finally { stopWatch.stop(); long costTimeMs = stopWatch.getTime(); @@ -1738,6 +1744,7 @@ public void abortTransaction(Long dbId, Long transactionId, String reason, abortTxnResponse = abortTransactionImpl(dbId, transactionId, reason, null); } finally { handleAfterAbort(abortTxnResponse, txnCommitAttachment, transactionId); + clearTxnLastSignature(dbId, transactionId); } }