You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by zh...@apache.org on 2022/08/01 06:48:54 UTC
[pulsar] branch master updated: [fix][broker]fix the zero value as denominator cause ArithmeticException when selectBroker use LeastResourceUsageWithWeight (#16573)
This is an automated email from the ASF dual-hosted git repository.
zhangmingao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 99fbe2226fe [fix][broker]fix the zero value as denominator cause ArithmeticException when selectBroker use LeastResourceUsageWithWeight (#16573)
99fbe2226fe is described below
commit 99fbe2226fe8ace44eea0899292833376d86fc20
Author: lixinyang <84...@users.noreply.github.com>
AuthorDate: Mon Aug 1 14:48:46 2022 +0800
[fix][broker]fix the zero value as denominator cause ArithmeticException when selectBroker use LeastResourceUsageWithWeight (#16573)
* fix the zero value as denominator cause ArithmeticException
* fix the zero value as denominator cause ArithmeticException
Co-authored-by: nicklixinyang <ni...@didiglobal.com>
---
.../broker/loadbalance/impl/LeastResourceUsageWithWeight.java | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/LeastResourceUsageWithWeight.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/LeastResourceUsageWithWeight.java
index 721917cb73d..2e717500e64 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/LeastResourceUsageWithWeight.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/LeastResourceUsageWithWeight.java
@@ -125,6 +125,11 @@ public class LeastResourceUsageWithWeight implements ModularLoadManagerStrategy
@Override
public Optional<String> selectBroker(Set<String> candidates, BundleData bundleToAssign, LoadData loadData,
ServiceConfiguration conf) {
+ if (candidates.isEmpty()) {
+ log.info("There are no available brokers as candidates at this point for bundle: {}", bundleToAssign);
+ return Optional.empty();
+ }
+
bestBrokers.clear();
// Maintain of list of all the best scoring brokers and then randomly
// select one of them at the end.
@@ -151,12 +156,6 @@ public class LeastResourceUsageWithWeight implements ModularLoadManagerStrategy
bestBrokers.addAll(candidates);
}
- if (bestBrokers.isEmpty()) {
- // If still, it means there are no available brokers at this point.
- log.error("There are no available brokers as candidates at this point for bundle: {}", bundleToAssign);
- return Optional.empty();
- }
-
if (log.isDebugEnabled()) {
log.debug("Selected {} best brokers: {} from candidate brokers: {}", bestBrokers.size(), bestBrokers,
candidates);