yuluo-yx opened a new issue, #10875: URL: https://github.com/apache/rocketmq/issues/10875
### Before Creating the Bug Report - [x] I found a bug, not just a question. - [x] I searched open GitHub Issues and pull requests and found no duplicate. - [x] I confirmed that this bug belongs to Apache RocketMQ. ### Runtime platform environment macOS (Darwin), reproduced with an isolated local unit test. ### RocketMQ version Branch: develop Git commit: fd0c95920e0deac96ce2ae27442747cc5e65e930 ### JDK Version Zulu OpenJDK 8 (8.94.0.17) ### Describe the Bug RaftReplicasInfoManager.checkNotActiveBroker passes the negation of isBrokerActive as the valid-broker predicate to scanNeedReelectBrokerSets. That scanner already treats a false predicate result as inactive. The double inversion marks an expired master as valid and can omit the broker set from the re-election response even when a slave is alive. ### Steps to Reproduce 1. Configure a broker set with broker ID 1 as master and broker ID 2 as slave. 2. Keep only the slave active in brokerLiveTable. 3. Call checkNotActiveBroker. 4. Decode the response body and inspect the broker sets needing re-election. ### What Did You Expect to See? The response should report the broker set so the inactive master can be re-elected. ### What Did You See Instead? The broker set is omitted because the inactive master is treated as satisfying the valid-broker predicate. ### Additional Context The controller behavior is reproduced in RaftReplicasInfoManagerTest. -- 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]
