This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-1.1-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.1-lts by this push:
new dab362aa60 [improvement](log) print info of error replicas (#14221)
dab362aa60 is described below
commit dab362aa6069021f78a80cba2e53348865e22119
Author: Yongqiang YANG <[email protected]>
AuthorDate: Mon Nov 14 09:09:49 2022 +0800
[improvement](log) print info of error replicas (#14221)
---
.../apache/doris/transaction/DatabaseTransactionMgr.java | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
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 24811d7de8..c6563e2d5b 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
@@ -410,7 +410,7 @@ public class DatabaseTransactionMgr {
private void checkCommitStatus(List<Table> tableList, TransactionState
transactionState,
List<TabletCommitInfo> tabletCommitInfos,
TxnCommitAttachment txnCommitAttachment,
Set<Long> errorReplicaIds, Map<Long,
Set<Long>> tableToPartition,
- Set<Long> totalInvolvedBackends) throws
UserException {
+ Set<Long> totalInvolvedBackends) throws
UserException {
Database db = catalog.getDbOrMetaException(dbId);
// update transaction state extra if exists
@@ -516,6 +516,7 @@ public class DatabaseTransactionMgr {
// save the error replica ids for current tablet
// this param is used for log
Set<Long> errorBackendIdsForTablet = Sets.newHashSet();
+ String errorReplicaInfo = new String();
for (long tabletBackend : tabletBackends) {
Replica replica =
tabletInvertedIndex.getReplica(tabletId, tabletBackend);
if (replica == null) {
@@ -530,21 +531,28 @@ public class DatabaseTransactionMgr {
// for example, a replica is in clone state
if (replica.getLastFailedVersion() < 0) {
++successReplicaNum;
+ } else {
+ errorReplicaInfo += " replica [" +
replica.getId() + "], lastFailedVersion ["
+ +
replica.getLastFailedVersion() + "]";
}
} else {
errorBackendIdsForTablet.add(tabletBackend);
errorReplicaIds.add(replica.getId());
// not remove rollup task here, because the
commit maybe failed
// remove rollup task when commit successfully
+ errorReplicaInfo += " replica [" +
replica.getId() + "] commitBackends null or "
+ + "tabletBackend [" +
tabletBackend + "] does not "
+ + "in commitBackends";
}
}
if (successReplicaNum < quorumReplicaNum) {
LOG.warn("Failed to commit txn [{}]. "
+ "Tablet [{}] success replica num
is {} < quorum replica num {} "
- + "while error backends {}",
- transactionState.getTransactionId(),
tablet.getId(), successReplicaNum, quorumReplicaNum,
-
Joiner.on(",").join(errorBackendIdsForTablet));
+ + "while error backends {} error
replica info {}",
+ transactionState.getTransactionId(),
tablet.getId(), successReplicaNum,
+ quorumReplicaNum,
Joiner.on(",").join(errorBackendIdsForTablet),
+ errorBackendIdsForTablet);
throw new
TabletQuorumFailedException(transactionState.getTransactionId(), tablet.getId(),
successReplicaNum, quorumReplicaNum,
errorBackendIdsForTablet);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]