This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 8fd27a852c [fix](transaction) fix profile null exception cause txn
stuck (#24813)
8fd27a852c is described below
commit 8fd27a852cfdfc268a0cd935916dc518ba94e2b5
Author: yujun <[email protected]>
AuthorDate: Sun Sep 24 23:46:38 2023 +0800
[fix](transaction) fix profile null exception cause txn stuck (#24813)
---
.../src/main/java/org/apache/doris/common/profile/Profile.java | 5 +++--
.../main/java/org/apache/doris/common/util/RuntimeProfile.java | 5 ++---
.../main/java/org/apache/doris/load/loadv2/BrokerLoadJob.java | 4 +++-
.../main/java/org/apache/doris/load/loadv2/BulkLoadJob.java | 2 +-
fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java | 3 ++-
.../org/apache/doris/transaction/DatabaseTransactionMgr.java | 10 +++++++---
6 files changed, 18 insertions(+), 11 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/profile/Profile.java
b/fe/fe-core/src/main/java/org/apache/doris/common/profile/Profile.java
index 7f2b7a154c..bc7250ad2f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/profile/Profile.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/profile/Profile.java
@@ -61,7 +61,8 @@ public class Profile {
executionProfile.addToProfileAsChild(rootProfile);
}
- public synchronized void update(long startTime, Map<String, String>
summaryInfo, boolean isFinished) {
+ public synchronized void update(long startTime, Map<String, String>
summaryInfo, boolean isFinished,
+ boolean isSimpleProfile) {
if (this.isFinished) {
return;
}
@@ -70,7 +71,7 @@ public class Profile {
executionProfile.update(startTime, isFinished);
}
rootProfile.computeTimeInProfile();
- rootProfile.setProfileLevel();
+ rootProfile.setProfileLevel(isSimpleProfile);
ProfileManager.getInstance().pushProfile(rootProfile);
this.isFinished = isFinished;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/util/RuntimeProfile.java
b/fe/fe-core/src/main/java/org/apache/doris/common/util/RuntimeProfile.java
index 42b0f46f1d..9f1bdb96b5 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/RuntimeProfile.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/RuntimeProfile.java
@@ -20,7 +20,6 @@ package org.apache.doris.common.util;
import org.apache.doris.common.Pair;
import org.apache.doris.common.Reference;
import org.apache.doris.common.profile.SummaryProfile;
-import org.apache.doris.qe.ConnectContext;
import org.apache.doris.thrift.TCounter;
import org.apache.doris.thrift.TRuntimeProfileNode;
import org.apache.doris.thrift.TRuntimeProfileTree;
@@ -689,8 +688,8 @@ public class RuntimeProfile {
computeTimeInProfile(this.counterTotalTime.getValue());
}
- public void setProfileLevel() {
- this.enableSimplyProfile =
ConnectContext.get().getSessionVariable().getEnableSimplyProfile();
+ public void setProfileLevel(boolean isSimpleProfile) {
+ this.enableSimplyProfile = isSimpleProfile;
}
private void computeTimeInProfile(long total) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BrokerLoadJob.java
b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BrokerLoadJob.java
index 6dd8675b3b..d049e0f508 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BrokerLoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BrokerLoadJob.java
@@ -48,6 +48,7 @@ import org.apache.doris.load.EtlJobType;
import org.apache.doris.load.FailMsg;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.qe.OriginStatement;
+import org.apache.doris.qe.SessionVariable;
import org.apache.doris.service.FrontendOptions;
import org.apache.doris.thrift.TUniqueId;
import org.apache.doris.transaction.BeginTransactionException;
@@ -321,7 +322,8 @@ public class BrokerLoadJob extends BulkLoadJob {
if (!enableProfile) {
return;
}
- jobProfile.update(createTimestamp, getSummaryInfo(true), true);
+ jobProfile.update(createTimestamp, getSummaryInfo(true), true,
+
Boolean.valueOf(sessionVariables.getOrDefault(SessionVariable.ENABLE_SIMPLY_PROFILE,
"true")));
}
private Map<String, String> getSummaryInfo(boolean isFinished) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java
b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java
index a6c5b012e0..d5b173d82f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java
@@ -88,7 +88,7 @@ public abstract class BulkLoadJob extends LoadJob {
// sessionVariable's name -> sessionVariable's value
// we persist these sessionVariables due to the session is not available
when replaying the job.
- private Map<String, String> sessionVariables = Maps.newHashMap();
+ protected Map<String, String> sessionVariables = Maps.newHashMap();
public BulkLoadJob(EtlJobType jobType) {
super(jobType);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
index 6b30fc58e2..e0e68180bd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
@@ -885,7 +885,8 @@ public class StmtExecutor {
if (!context.getSessionVariable().enableProfile()) {
return;
}
- profile.update(context.startTime, getSummaryInfo(isFinished),
isFinished);
+ profile.update(context.startTime, getSummaryInfo(isFinished),
isFinished,
+ context.getSessionVariable().enableSimplyProfile);
}
// Analyze one statement to structure in memory.
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
b/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
index bbf847d9b2..f7168b0dd3 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java
@@ -699,7 +699,11 @@ public class DatabaseTransactionMgr {
} finally {
writeUnlock();
// after state transform
- transactionState.afterStateTransform(TransactionStatus.COMMITTED,
txnOperated);
+ try {
+
transactionState.afterStateTransform(TransactionStatus.COMMITTED, txnOperated);
+ } catch (Throwable e) {
+ LOG.warn("afterStateTransform txn {} failed. exception: ",
transactionState, e);
+ }
}
// update nextVersion because of the failure of persistent transaction
resulting in error version
@@ -1064,8 +1068,8 @@ public class DatabaseTransactionMgr {
writeUnlock();
try {
transactionState.afterStateTransform(TransactionStatus.VISIBLE, txnOperated);
- } catch (UserException e) {
- LOG.warn("afterStateTransform txn {} failed. msg: {}",
transactionId, e.getMessage());
+ } catch (Throwable e) {
+ LOG.warn("afterStateTransform txn {} failed. exception: ",
transactionState, e);
}
}
updateCatalogAfterVisible(transactionState, db);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]