dajac commented on code in PR #13848: URL: https://github.com/apache/kafka/pull/13848#discussion_r1231056163
########## core/src/test/scala/unit/kafka/utils/TestUtils.scala: ########## @@ -611,11 +611,33 @@ object TestUtils extends Logging { */ def createOffsetsTopic(zkClient: KafkaZkClient, servers: Seq[KafkaBroker]): Unit = { val server = servers.head - createTopic(zkClient, Topic.GROUP_METADATA_TOPIC_NAME, - server.config.getInt(KafkaConfig.OffsetsTopicPartitionsProp), - server.config.getShort(KafkaConfig.OffsetsTopicReplicationFactorProp).toInt, - servers, - server.groupCoordinator.groupMetadataTopicConfigs) + val numPartitions = server.config.offsetsTopicPartitions + val replicationFactor = server.config.offsetsTopicReplicationFactor.toInt + + try { + createTopic( + zkClient, + Topic.GROUP_METADATA_TOPIC_NAME, + numPartitions, + replicationFactor, + servers, + server.groupCoordinator.groupMetadataTopicConfigs + ) + } catch { + case ex: TopicExistsException => + val allPartitionsMetadata = waitForAllPartitionsMetadata( + servers, + Topic.GROUP_METADATA_TOPIC_NAME, + numPartitions + ) + + // If the topic already exists, we ensure that it has the required + // number of partitions and replication factor. If it has not, the + // exception is thrown further. + if (allPartitionsMetadata.size != numPartitions || allPartitionsMetadata.head._2.replicas.size != replicationFactor) { Review Comment: I disagree because we only use this method when we create a new cluster. However, I agree that it could be brittle if we were using it differently. I think that you could always argue that you just want this method to ensure that the topic is present regardless of whether it has already been used or not. I will extend the javadoc to make this clear. -- 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