From 5ef28b4c1659d99b84380ad2e49e34ec90cb8ffd Mon Sep 17 00:00:00 2001 From: Yongqiang YANG Date: Thu, 1 Jun 2023 12:19:08 +0800 Subject: [PATCH 1/2] (enhancement)(publish) print detailed info for failed publish --- .../doris/transaction/DatabaseTransactionMgr.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 4c50ae91272f89..83691f5cef06d8 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 @@ -928,9 +928,18 @@ public void finishTransaction(long transactionId, Set errorReplicaIds) thr for (Tablet tablet : index.getTablets()) { int healthReplicaNum = 0; for (Replica replica : tablet.getReplicas()) { - if (!errorReplicaIds.contains(replica.getId()) && replica.getLastFailedVersion() < 0) { + if (replica.getLastFailedVersion() >= 0) { + LOG.info("publish version failed for transaction {} on tablet {}," + + " on replica {} due to lastFailedVersion >= 0", + transactionState, tablet, replica); + continue; + } + if (!errorReplicaIds.contains(replica.getId())) { if (replica.checkVersionCatchUp(partition.getVisibleVersion(), true)) { ++healthReplicaNum; + } else { + LOG.info("publish version failed for transaction {} on tablet {}," + + " on replica {} due to not catchup", transactionState, tablet, replica); } } else if (replica.getVersion() >= partitionCommitInfo.getVersion()) { // the replica's version is larger than or equal to current transaction @@ -938,6 +947,9 @@ public void finishTransaction(long transactionId, Set errorReplicaIds) thr // TODO(cmy): actually I have no idea why we need this check errorReplicaIds.remove(replica.getId()); ++healthReplicaNum; + } else { + LOG.info("publish version failed for transaction {} on tablet {}," + + " on replica {} due to version hole", transactionState, tablet, replica); } } From 08b2090828ed3839e657d281987e2559592f4685 Mon Sep 17 00:00:00 2001 From: Yongqiang YANG Date: Thu, 1 Jun 2023 14:32:56 +0800 Subject: [PATCH 2/2] fix --- .../org/apache/doris/transaction/DatabaseTransactionMgr.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 83691f5cef06d8..5d6b94bfbbe5b2 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 @@ -939,7 +939,8 @@ public void finishTransaction(long transactionId, Set errorReplicaIds) thr ++healthReplicaNum; } else { LOG.info("publish version failed for transaction {} on tablet {}," - + " on replica {} due to not catchup", transactionState, tablet, replica); + + " on replica {} due to not catchup", + transactionState, tablet, replica); } } else if (replica.getVersion() >= partitionCommitInfo.getVersion()) { // the replica's version is larger than or equal to current transaction