jolshan commented on a change in pull request #11459: URL: https://github.com/apache/kafka/pull/11459#discussion_r750452149
########## File path: core/src/main/scala/kafka/server/ReplicaManager.scala ########## @@ -1401,6 +1401,12 @@ class ReplicaManager(val config: KafkaConfig, if (partitionState.leader != localBrokerId) topicIdUpdateFollowerPartitions.add(partition) Errors.NONE + case None if logTopicId.isDefined => + // If we have a topic ID in the log but not in the request, we must have previously had topic IDs but + // are now downgrading. If we are a follower, remove the topic ID from the PartitionFetchState. + if (partitionState.leader != localBrokerId) + topicIdUpdateFollowerPartitions.add(partition) Review comment: As mentioned in the PR description: > This PR removes the topic IDs from the PartitionFetchState if the log contains a topic ID but the request does not. This means that we will always handle a leader and isr request if there is no ID in the request but an ID in the log. Such a state should be transient because we are either * upgrading the cluster and somehow switched between a new IBP controller and an old one --> and will eventually have all new IBP controllers/brokers. * downgrading the cluster --> will eventually have all old IBP controllers/brokers and will restart the broker/delete the partition metadata file for them. -- 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