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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]