soarez commented on code in PR #15951: URL: https://github.com/apache/kafka/pull/15951#discussion_r1607884973
########## core/src/main/scala/kafka/server/ReplicaManager.scala: ########## @@ -2114,19 +2114,16 @@ class ReplicaManager(val config: KafkaConfig, partition.log.foreach { _ => val leader = BrokerEndPoint(config.brokerId, "localhost", -1) - // Add future replica log to partition's map - partition.createLogIfNotExists( - isNew = false, - isFutureReplica = true, - offsetCheckpoints, - topicIds(partition.topic)) - - // pause cleaning for partitions that are being moved and start ReplicaAlterDirThread to move - // replica from source dir to destination dir - logManager.abortAndPauseCleaning(topicPartition) - - futureReplicasAndInitialOffset.put(topicPartition, InitialFetchState(topicIds(topicPartition.topic), leader, - partition.getLeaderEpoch, futureLog.highWatermark)) + if (partition.maybeCreateFutureReplica(futureLog.parentDir, offsetCheckpoints, topicIds(partition.topic))) { Review Comment: > That means, we have to do the partition.createLogIfNotExists() here. Given that `partition.maybeCreateFutureReplica()` only calls `partition.createLogIfNotExists()` if the future replica doesn't yet exist, and that it's possible that the future log only exists in `logManager#futureLogs` map, but not in `partition#futureLog` map – do we need to call `partition.createLogIfNotExists()` directly instead of ``partition.maybeCreateFutureReplica()` ? -- 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