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

kafka-streams-application-reset deletes topics not belonging to specified application-id

    XMLWordPrintableJSON

Details

    Description

      Slack-thread: https://confluentcommunity.slack.com/archives/C48AHTCUQ/p1681908267206849

      When running the command kafka-streams-application-reset --bootstrap-servers $BOOTSTRAP --application-id foo all internal topics that starts with foo is deleted. This happens even if there's no application-id named foo.

      Example:

      Application IDs:
      foo-v1
      foo-v2
      
      Internal topics:
      foo-v1-repartition-topic-repartition
      foo-v2-repartition-topic-repartition 
      
      Application reset:
      kafka-streams-application-reset --bootstrap-servers $BOOTSTRAP --application-id foo
      > No input or intermediate topics specified. Skipping seek.
      Deleting inferred internal topics [foo-v2-repartition-topic-repartition, foo-v1-repartition-topic-repartition]
      Done.

      Expected behaviour is that the command fails as there are no application-id's with the name foo instead of deleting all foo* topics. 

      This is critical on typos or if application-ids starts with the same name as others (for example if we had foo-v21 and wanted to reset foo-v2)

      The bug should be located here: https://github.com/apache/kafka/blob/c14f56b48461f01743146d58987bc8661ba0d459/tools/src/main/java/org/apache/kafka/tools/StreamsResetter.java#L693

      Should check that the topics matches the application-id exactly instead of checking that it starts with the application-id.

      Attachments

        Activity

          People

            devanshikhatsuriya Devanshi Khatsuriya
            jorgenringen Jørgen
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: