kevin-wu24 commented on code in PR #18949:
URL: https://github.com/apache/kafka/pull/18949#discussion_r1980228836


##########
core/src/main/scala/kafka/server/BrokerServer.scala:
##########
@@ -194,6 +194,7 @@ class BrokerServer(
 
       val clientMetricsReceiverPlugin = new ClientMetricsReceiverPlugin()
       config.dynamicConfig.initialize(Some(clientMetricsReceiverPlugin))
+      DynamicBrokerConfig.readDynamicBrokerConfigsFromSnapshot(raftManager, 
config, quotaManagers)

Review Comment:
   > This will be too late to address some of the use-cases we're concerned 
about, right?
   
   Could you illuminate some of these cases for me? It seems like we're doing 
this early enough in `brokerServer`'s startup to me. Are we instead concerned 
that bad static configs will prevent even `SharedServer#startup`, which sets up 
KRaft and metadata publishers, from completing successfully? I guess I'm just 
confused as to how node can even get into a state where the static configs 
would crash `SharedServer#startup`, but somehow also have valid dynamic configs?
   
   I'm a bit confused as to what you're proposing. It sounds like this loading 
config key/value pairs from the snapshot should occur before we construct the 
`KafkaConfig` in `SharedServer`'s initialization (i.e. before we call 
`SharedServer#start` which initializes `raftManager`)? If so, that means we 
can't use `raftManager` to actually perform the snapshot read, right?



-- 
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: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to