yyqdbngt opened a new pull request, #5838:
URL: https://github.com/apache/rocketmq-dashboard/pull/5838

   ## Why
   `RocketMQLiteTopicProvider.getQuota()` already skips a master entirely when 
its `GET_BROKER_LITE_INFO` read fails, with an explicit invariant: the usage 
ratios must be built from a single master set. But when a master's 
`getBrokerConfig` read fails (the call that supplies 
`maxLiteSubscriptionCount`), only the **cap** was skipped while that master's 
`currentLmqNum`/`maxLmqNum`/`liteSubscriptionCount` were still accumulated. The 
session usage ratio was then built out of two different master sets: sessions 
from all masters divided by caps from only the reachable ones, reporting 
session usage above 100% (or a false quota-exceeded) whenever one broker's 
config read fails.
   
   ## What changed
   - In `getQuota()`, a master whose broker config read fails is now skipped 
entirely (warn log included), mirroring the existing `info == null` rule one 
branch above.
   
   ## Validation
   - Red-first test 
`RocketMQLiteTopicProviderTest#quotaSkipsAMasterWhoseBrokerConfigReadFailsInsteadOfMixingMasterSets`:
 master A answers both calls, master B answers lite info but throws on broker 
config; before the fix the quota reported 
currentTopicCount=8/currentSessionCount=7 against a cap built from master A 
alone, after the fix the report covers master A only (3/3/40/100000).
   - Full `RocketMQLiteTopicProviderTest` passes (26 tests, 0 failures): `mvn 
-q test -Dtest=RocketMQLiteTopicProviderTest`


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to