Kuan Po Tseng created KAFKA-16455:
-------------------------------------

             Summary: Check partition exists before send reassignments to 
server in ReassignPartitionsCommand
                 Key: KAFKA-16455
                 URL: https://issues.apache.org/jira/browse/KAFKA-16455
             Project: Kafka
          Issue Type: Improvement
          Components: tools
            Reporter: Kuan Po Tseng
            Assignee: Kuan Po Tseng


Currently, when executing {{kafka-reassign-partitions.sh}} with the 
{{--execute}} option, if a partition number specified in the JSON file does not 
exist, this check occurs only when submitting the reassignments to 
{{alterPartitionReassignments}} on the server-side.

We can perform this check in advance before submitting the reassignments to the 
server side.

For example, suppose we have three brokers with IDs 1001, 1002, and 1003, and a 
topic named {{first_topic}} with only three partitions. And execute 
{code:bash}
bin/kafka-reassign-partitions.sh 
  --bootstrap-server 192.168.0.128:9092 
  --reassignment-json-file reassignment.json 
  --execute
{code}
Where reassignment.json contains
{code:json}
{
  "version": 1,
  "partitions": [
    {
      "topic": "first_topic",
      "partition": 20,
      "replicas": [1002, 1001, 1003],
      "log_dirs": ["any", "any", "any"]
    }
  ]
}
{code}
The console outputs
{code:java}
Current partition replica assignment

{"version":1,"partitions":[]}

Save this to use as the --reassignment-json-file option during rollback
Error reassigning partition(s):
first_topic-20: The partition does not exist.
{code}
Apart from the output {{\{"version":1,"partitions":[]\}}} which doesn't provide 
much help, the error {{first_topic-20: The partition does not exist.}} is 
reported back to the tool from the server-side, as mentioned earlier. This 
check could be moved earlier before sending reassignments to server side



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to