Bob Halley created KAFKA-2234: --------------------------------- Summary: Partition reassignment of an empty topic prevents future reassignments Key: KAFKA-2234 URL: https://issues.apache.org/jira/browse/KAFKA-2234 Project: Kafka Issue Type: Bug Affects Versions: 0.8.2.1 Reporter: Bob Halley Priority: Blocker
The results of this bug are like those of KAFKA-822. If I erroneously list a non-existent topic in a partition reassignment request, then it will never complete and it becomes impossible to do reassignments until the admin/reassign-partitions node is deleted by hand from zookeeper. Note too the incoherent messaging in the bad command. First it says ERROR what I'm trying to do is bad, and then it says it has successfully started it (which indeed it has, at least in the sense of writing an empty list to to zookeeper :)). # reassignment.json is bad, it refers to the non-existent topic "bad-foo" $ cat reassignment.json {"partitions": [{"topic": "bad-foo", "partition": 0, "replicas": [2] }], "version":1 } $ kafka-reassign-partitions.sh --reassignment-json-file reassignment.json --zookeeper localhost:2181/kafka --execute Current partition replica assignment {"version":1,"partitions":[]} Save this to use as the --reassignment-json-file option during rollback [2015-06-01 06:34:26,275] ERROR Skipping reassignment of partition [bad-foo,0] since it doesn't exist (kafka.admin.ReassignPartitionsCommand) Successfully started reassignment of partitions {"version":1,"partitions":[{"topic":"bad-foo","partition":0,"replicas":[2]}]} $ zkCli Connecting to localhost:2181 Welcome to ZooKeeper! JLine support is enabled WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 2] get /kafka/admin/reassign_partitions {"version":1,"partitions":[]} cZxid = 0x5d ctime = Mon Jun 01 06:34:26 PDT 2015 mZxid = 0x5d mtime = Mon Jun 01 06:34:26 PDT 2015 pZxid = 0x5d cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 29 numChildren = 0 ^C # Fix reassignment.json $kafka-reassign-partitions.sh --reassignment-json-file reassignment.json --zookeeper localhost:2181/kafka --executetions Current partition replica assignment {"version":1,"partitions":[{"topic":"good-foo","partition":0,"replicas":[2]}]} Save this to use as the --reassignment-json-file option during rollback Partitions reassignment failed due to Partition reassignment currently in progress for Map(). Aborting operation kafka.common.AdminCommandFailedException: Partition reassignment currently in progress for Map(). Aborting operation at kafka.admin.ReassignPartitionsCommand.reassignPartitions(ReassignPartitionsCommand.scala:216) at kafka.admin.ReassignPartitionsCommand$.executeAssignment(ReassignPartitionsCommand.scala:133) at kafka.admin.ReassignPartitionsCommand$.main(ReassignPartitionsCommand.scala:47) at kafka.admin.ReassignPartitionsCommand.main(ReassignPartitionsCommand.scala) -- This message was sent by Atlassian JIRA (v6.3.4#6332)