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

yiguolei 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 2fb4c818da [fix](tablet clone) delete tablet check other catchup #24038
2fb4c818da is described below

commit 2fb4c818da4a05d2c4e0d5a0c24e3c0944c2eec3
Author: yujun <yu.jun.re...@gmail.com>
AuthorDate: Sat Sep 9 00:42:32 2023 +0800

    [fix](tablet clone) delete tablet check other catchup #24038
    
    Sometimes FE replica's version is unreliable. FE's replica may bigger than 
BE's real version. Need check if BE missing version (last failed version > 0).
---
 .../main/java/org/apache/doris/clone/TabletScheduler.java   | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java 
b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java
index d791b53475..8cd3e92131 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java
@@ -1056,14 +1056,11 @@ public class TabletScheduler extends MasterDaemon {
             Replica replica, String reason, boolean force) throws 
SchedException {
 
         List<Replica> replicas = tabletCtx.getTablet().getReplicas();
-        int matchupReplicaCount = 0;
-        for (Replica tmpReplica : replicas) {
-            if (tmpReplica.getVersion() >= replica.getVersion()) {
-                matchupReplicaCount++;
-            }
-        }
-
-        if (matchupReplicaCount <= 1) {
+        boolean otherCatchup = replicas.stream().anyMatch(
+                r -> r.getId() != replica.getId()
+                && (r.getVersion() > replica.getVersion()
+                        || (r.getVersion() == replica.getVersion() && 
r.getLastFailedVersion() < 0)));
+        if (!otherCatchup) {
             LOG.info("can not delete only one replica, tabletId = {} replicaId 
= {}", tabletCtx.getTabletId(),
                      replica.getId());
             throw new SchedException(Status.UNRECOVERABLE, "the only one 
latest replia can not be dropped, tabletId = "


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

Reply via email to