This is an automated email from the ASF dual-hosted git repository.

morningman 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 d44af5decf [fix](alter-load) fix bug that tablet version may be wrong 
when doing alter and load (#13070)
d44af5decf is described below

commit d44af5decf1af05af99c6b3139fce385ebc52d3e
Author: Mingyu Chen <morningman....@gmail.com>
AuthorDate: Fri Sep 30 23:39:30 2022 +0800

    [fix](alter-load) fix bug that tablet version may be wrong when doing alter 
and load (#13070)
    
    the `isRunning()` method of `TransactionState` is missing `PRE_COMMITTED` 
status.
    Which cause wrong judgment of `isPreviousTransactionsFinished`
---
 fe/fe-core/src/main/java/org/apache/doris/common/Config.java         | 1 +
 fe/fe-core/src/main/java/org/apache/doris/load/LoadChecker.java      | 2 +-
 fe/fe-core/src/main/java/org/apache/doris/system/Diagnoser.java      | 3 +++
 .../java/org/apache/doris/transaction/DatabaseTransactionMgr.java    | 2 +-
 .../src/main/java/org/apache/doris/transaction/TransactionState.java | 5 -----
 5 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/Config.java 
b/fe/fe-core/src/main/java/org/apache/doris/common/Config.java
index 2c1c57c72e..14aa70d0ce 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/Config.java
@@ -753,6 +753,7 @@ public class Config extends ConfigBase {
      * this config has been replaced by async_loading_load_task_pool_size,
      * it will be removed in the future.
      */
+    @Deprecated
     @ConfField(mutable = false, masterOnly = true)
     public static int async_load_task_pool_size = 10;
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/LoadChecker.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/LoadChecker.java
index 285a7e7384..c0732edb03 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/LoadChecker.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/LoadChecker.java
@@ -300,7 +300,7 @@ public class LoadChecker extends MasterDaemon {
 
         // yiguolei: for real time load we use full finished replicas
         Set<Long> fullTablets = job.getFullTablets();
-        if (state.isRunning()) {
+        if (!state.getTransactionStatus().isFinalStatus()) {
             job.setProgress(fullTablets.size() * 100 / jobTotalTablets.size());
         } else {
             job.setProgress(100);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/system/Diagnoser.java 
b/fe/fe-core/src/main/java/org/apache/doris/system/Diagnoser.java
index f7ce60cdcc..fc0cfe08ea 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/system/Diagnoser.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/system/Diagnoser.java
@@ -144,6 +144,9 @@ public class Diagnoser {
                 versionErr.append("Replica on backend " + 
replica.getBackendId() + "'s version ("
                         + replica.getVersion() + ") does not equal"
                         + " to partition visible version (" + 
partition.getVisibleVersion() + ")");
+            } else if (replica.getLastFailedVersion() != -1) {
+                versionErr.append("Replica on backend " + 
replica.getBackendId() + "'s last failed version is "
+                        + replica.getLastFailedVersion());
             }
             // status
             if (!replica.isAlive()) {
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 63d1dc7cd7..210684fea9 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
@@ -1600,7 +1600,7 @@ public class DatabaseTransactionMgr {
         try {
             for (Map.Entry<Long, TransactionState> entry : 
idToRunningTransactionState.entrySet()) {
                 if (entry.getValue().getDbId() != dbId || 
!isIntersectionNotEmpty(entry.getValue().getTableIdList(),
-                        tableIdList) || !entry.getValue().isRunning()) {
+                        tableIdList) || 
entry.getValue().getTransactionStatus().isFinalStatus()) {
                     continue;
                 }
                 if (entry.getKey() <= endTransactionId) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/transaction/TransactionState.java 
b/fe/fe-core/src/main/java/org/apache/doris/transaction/TransactionState.java
index 9374a2eeb3..3a59fac9d9 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/transaction/TransactionState.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/transaction/TransactionState.java
@@ -287,11 +287,6 @@ public class TransactionState implements Writable {
         this.errorReplicas = newErrorReplicas;
     }
 
-    public boolean isRunning() {
-        return transactionStatus == TransactionStatus.PREPARE
-                || transactionStatus == TransactionStatus.COMMITTED;
-    }
-
     public void addPublishVersionTask(Long backendId, PublishVersionTask task) 
{
         this.publishVersionTasks.put(backendId, task);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to