You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by da...@apache.org on 2024/07/23 12:21:45 UTC
(doris) branch branch-2.1 updated: [fix](insert) Pick Insert init plan error may forget to abort txn (#34220) (#38260)
This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new b591837e13b [fix](insert) Pick Insert init plan error may forget to abort txn (#34220) (#38260)
b591837e13b is described below
commit b591837e13b26bd99ef3886539e90f5eb3119244
Author: meiyi <my...@gmail.com>
AuthorDate: Tue Jul 23 20:21:38 2024 +0800
[fix](insert) Pick Insert init plan error may forget to abort txn (#34220) (#38260)
Pick https://github.com/apache/doris/pull/34220
---
.../trees/plans/commands/insert/InsertIntoTableCommand.java | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertIntoTableCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertIntoTableCommand.java
index 0d9f477f96b..f524ee9672a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertIntoTableCommand.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertIntoTableCommand.java
@@ -137,7 +137,7 @@ public class InsertIntoTableCommand extends Command implements ForwardWithSync,
targetTableIf.getDatabase().getFullName() + "." + targetTableIf.getName());
}
- AbstractInsertExecutor insertExecutor;
+ AbstractInsertExecutor insertExecutor = null;
// should lock target table until we begin transaction.
targetTableIf.readLock();
try {
@@ -199,8 +199,14 @@ public class InsertIntoTableCommand extends Command implements ForwardWithSync,
insertExecutor.beginTransaction();
insertExecutor.finalizeSink(planner.getFragments().get(0), sink, physicalSink);
- } finally {
targetTableIf.readUnlock();
+ } catch (Throwable e) {
+ targetTableIf.readUnlock();
+ // the abortTxn in onFail need to acquire table write lock
+ if (insertExecutor != null) {
+ insertExecutor.onFail(e);
+ }
+ throw e;
}
executor.setProfileType(ProfileType.LOAD);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org