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

Kraft MetadataPartitionsBuilder _localChanged and _localRemoved out of order

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.8.0
    • 3.0.0
    • core

    Description

      In version 2.8, MetadataPartitionsBuilder has the field _localChanged and _localRemoved which record the change and delete partition, but we always process _localChanged partitions, and then _localRemoved in the kafka.server.RaftReplicaManager#handleMetadataRecords, not respect the original order, for example,
      1. migrate the partition p1 from b0 to b1;
      2. change the leader of p1
      3.migrate p1 from b1 to b0
      and the _localRemoved will delete the p1 at last.

      and I think MetadataPartition should include topic uuid, and the topic name is optional
      for example,
      create topic t1, delete topic t1, create topic t1, change leader of p1
      and then compact the records
      delete topic t1, change t1, p1

      but currently, implementation will be
      1. process change t1, p1
      2. process delete topic t1

      but the MetadataPartition doesn't include topic uuid, it only includes topic name, when to process, it can't find the origin topic uuid, and find the latest the topic id, but it's not right. and delete topic t1 should do before create t1 or change p1.

      Attachments

        Activity

          People

            cmccabe Colin McCabe
            jacky0123 jacky
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: