This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 54168b5d64 Improve auto-recovery noise log when some bookie down.
(#4118)
54168b5d64 is described below
commit 54168b5d6441f7cbe0b478867d8301a6eee0b891
Author: Yan Zhao <[email protected]>
AuthorDate: Thu Jan 11 05:50:48 2024 +0800
Improve auto-recovery noise log when some bookie down. (#4118)
* Improve auto-recovery noise log when some bookie down.
* Address comment.
---
.../client/RackawareEnsemblePlacementPolicyImpl.java | 19 ++++++++++++++++---
.../client/TopologyAwareEnsemblePlacementPolicy.java | 5 ++---
2 files changed, 18 insertions(+), 6 deletions(-)
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java
index 7f219854ed..3863a26a24 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RackawareEnsemblePlacementPolicyImpl.java
@@ -507,13 +507,26 @@ public class RackawareEnsemblePlacementPolicyImpl extends
TopologyAwareEnsembleP
try {
excludeBookies =
addDefaultRackBookiesIfMinNumRacksIsEnforced(excludeBookies);
excludeBookies.addAll(currentEnsemble);
+
+ Set<Node> ensembleNodes = new HashSet<>();
+ Set<Node> excludeNodes = new HashSet<>();
BookieNode bn = knownBookies.get(bookieToReplace);
if (null == bn) {
bn = createBookieNode(bookieToReplace);
}
-
- Set<Node> ensembleNodes = convertBookiesToNodes(currentEnsemble);
- Set<Node> excludeNodes = convertBookiesToNodes(excludeBookies);
+ for (BookieId bookieId : currentEnsemble) {
+ if (bookieId.equals(bookieToReplace)) {
+ continue;
+ }
+ ensembleNodes.add(convertBookieToNode(bookieId));
+ }
+ for (BookieId bookieId : excludeBookies) {
+ if (bookieId.equals(bookieToReplace)) {
+ excludeNodes.add(bn);
+ continue;
+ }
+ excludeNodes.add(convertBookieToNode(bookieId));
+ }
excludeNodes.addAll(ensembleNodes);
excludeNodes.add(bn);
diff --git
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.java
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.java
index 463d9599de..4976f96e8c 100644
---
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.java
+++
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/TopologyAwareEnsemblePlacementPolicy.java
@@ -824,9 +824,8 @@ abstract class TopologyAwareEnsemblePlacementPolicy
implements
if (null != historyBookie) {
return historyBookie.getNetworkLocation();
}
-
- LOG.error("Cannot resolve bookieId {} to a network address,
resolving as {}", addr,
- NetworkTopology.DEFAULT_REGION_AND_RACK, err);
+ LOG.error("Cannot resolve bookieId {} to a network address,
resolving as {}. {}", addr,
+ NetworkTopology.DEFAULT_REGION_AND_RACK,
err.getMessage());
return NetworkTopology.DEFAULT_REGION_AND_RACK;
}
}