poorbarcode commented on code in PR #24225: URL: https://github.com/apache/pulsar/pull/24225#discussion_r2086457591
########## pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java: ########## @@ -596,12 +598,32 @@ protected void internalCreatePartitionedTopic(AsyncResponse asyncResponse, int n } }) .thenCompose(__ -> checkTopicExistsAsync(topicName)) - .thenAccept(exists -> { - if (exists) { - log.warn("[{}] Failed to create already existing topic {}", clientAppId(), topicName); - throw new RestException(Status.CONFLICT, "This topic already exists"); + .thenAccept(topicExistsInfo -> { + try { + if (topicExistsInfo.isExists()) { + if (topicExistsInfo.getTopicType().equals(TopicType.NON_PARTITIONED) + || (topicExistsInfo.getTopicType().equals(TopicType.PARTITIONED) + && !createLocalTopicOnly)) { Review Comment: > When createLocalTopicOnly = true, the creation logic runs on the remote cluster as part of GEO replication. In this case, if the metadata already exists, we continue to create the partition on the remote cluster. Regarding this case, please call create missed partitions instead of create partitioned metadata -- 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: commits-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org