You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Bob Halley (JIRA)" <ji...@apache.org> on 2015/06/01 15:47:17 UTC

[jira] [Created] (KAFKA-2234) Partition reassignment of an empty topic prevents future reassignments

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)