Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-2234

Partition reassignment of a nonexistent topic prevents future reassignments

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 0.8.2.1
    • Fix Version/s: 0.9.0.0
    • Component/s: None
    • Labels:
      None

      Description

      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 ).

      1. 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

      1. 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)

        Attachments

        1. KAFKA-2234.patch
          2 kB
          Manikumar

          Activity

            People

            • Assignee:
              omkreddy Manikumar
              Reporter:
              rthalley Bob Halley
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: