[ https://issues.apache.org/jira/browse/KAFKA-13986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17553818#comment-17553818 ]
Niket Goel commented on KAFKA-13986: ------------------------------------ The fix should be something on the lines of: {code:java} diff --git a/core/src/main/scala/kafka/raft/RaftManager.scala b/core/src/main/scala/kafka/raft/RaftManager.scala index cbb9f7b89b..94eec3d93b 100644 --- a/core/src/main/scala/kafka/raft/RaftManager.scala +++ b/core/src/main/scala/kafka/raft/RaftManager.scala @@ -24,7 +24,6 @@ import java.util.concurrent.CompletableFuture import kafka.log.UnifiedLog import kafka.raft.KafkaRaftManager.RaftIoThread import kafka.server.{KafkaConfig, MetaProperties} -import kafka.server.KafkaRaftServer.ControllerRole import kafka.utils.timer.SystemTimer import kafka.utils.{KafkaScheduler, Logging, ShutdownableThread} import org.apache.kafka.clients.{ApiVersions, ManualMetadataUpdater, NetworkClient} @@ -182,11 +181,7 @@ class KafkaRaftManager[T]( val expirationService = new TimingWheelExpirationService(expirationTimer) val quorumStateStore = new FileBasedStateStore(new File(dataDir, "quorum-state")) - val nodeId = if (config.processRoles.contains(ControllerRole)) { - OptionalInt.of(config.nodeId) - } else { - OptionalInt.empty() - } + val nodeId = OptionalInt.of(config.nodeId) val client = new KafkaRaftClient( recordSerde, {code} However there might be side-effects of the change. > DescribeQuorum does not return the observers (brokers) for the Metadata log > --------------------------------------------------------------------------- > > Key: KAFKA-13986 > URL: https://issues.apache.org/jira/browse/KAFKA-13986 > Project: Kafka > Issue Type: Improvement > Components: kraft > Affects Versions: 3.0.0, 3.0.1 > Reporter: Niket Goel > Priority: Major > > h2. Background > While working on the [PR|https://github.com/apache/kafka/pull/12206] for > KIP-836, we realized that the `DescribeQuorum` API does not return the > brokers as observers for the metadata log. > As noted by [~dengziming] : > _We set nodeId=-1 if it's a broker so observers.size==0_ > The related code is: > [https://github.com/apache/kafka/blob/4c9eeef5b2dff9a4f0977fbc5ac7eaaf930d0d0e/core/src/main/scala/kafka/raft/RaftManager.scala#L185-L189] > {code:java} > val nodeId = if (config.processRoles.contains(ControllerRole)) > { OptionalInt.of(config.nodeId) } > else > { OptionalInt.empty() } > {code} > h2. ToDo > We should fix this and have the DescribeMetadata API return the brokers as > observers for the metadata log. -- This message was sent by Atlassian Jira (v8.20.7#820007)