[ISSUE #9182] Fix NameServer will be not ready forever when set needWaitForService to true (#9183)

* Fix NameServer will be not ready forever when set needWaitForService to true

* Remove unused import
This commit is contained in:
gaoyf
2025-07-19 18:17:55 +08:00
committed by RongtongJin
parent 6de9bcaeaa
commit 9abdc3a3de
@@ -21,7 +21,6 @@ import com.alibaba.fastjson.serializer.SerializerFeature;
import io.netty.channel.ChannelHandlerContext;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.rocketmq.common.MQVersion;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.help.FAQUrl;
@@ -43,8 +42,6 @@ public class ClientRequestProcessor implements NettyRequestProcessor {
protected NamesrvController namesrvController;
private long startupTimeMillis;
private AtomicBoolean needCheckNamesrvReady = new AtomicBoolean(true);
public ClientRequestProcessor(final NamesrvController namesrvController) {
this.namesrvController = namesrvController;
this.startupTimeMillis = System.currentTimeMillis();
@@ -62,7 +59,7 @@ public class ClientRequestProcessor implements NettyRequestProcessor {
final GetRouteInfoRequestHeader requestHeader =
(GetRouteInfoRequestHeader) request.decodeCommandCustomHeader(GetRouteInfoRequestHeader.class);
boolean namesrvReady = needCheckNamesrvReady.get() && System.currentTimeMillis() - startupTimeMillis >= TimeUnit.SECONDS.toMillis(namesrvController.getNamesrvConfig().getWaitSecondsForService());
boolean namesrvReady = System.currentTimeMillis() - startupTimeMillis >= TimeUnit.SECONDS.toMillis(namesrvController.getNamesrvConfig().getWaitSecondsForService());
if (namesrvController.getNamesrvConfig().isNeedWaitForService() && !namesrvReady) {
log.warn("name server not ready. request code {} ", request.getCode());
@@ -74,11 +71,6 @@ public class ClientRequestProcessor implements NettyRequestProcessor {
TopicRouteData topicRouteData = this.namesrvController.getRouteInfoManager().pickupTopicRouteData(requestHeader.getTopic());
if (topicRouteData != null) {
//topic route info register success ,so disable namesrvReady check
if (needCheckNamesrvReady.get()) {
needCheckNamesrvReady.set(false);
}
if (this.namesrvController.getNamesrvConfig().isOrderMessageEnable()) {
String orderTopicConf =
this.namesrvController.getKvConfigManager().getKVConfig(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG,