[ https://issues.apache.org/jira/browse/KAFKA-14922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17886661#comment-17886661 ]
Devanshi Khatsuriya commented on KAFKA-14922: --------------------------------------------- Thank you for the clarifications! I think that re-using the force option can be misleading, as if it has 2 effects - 1) force deleting members and 2) deleting internal topics even if provided application id is not a valid id. It won't be possible to force delete members without compromising on having to provide a valid application id. Can have two different flags --forceDeleteMembers and --forceDeleteInternalTopics to avoid confusion? Maybe we change the --force flag's behavior to enable both these flags. Another option is changing the documentation for the `kafka-streams-application-reset` command to say that it takes as input the application id prefix and not exact application id. The plus point about this is that it does not mandate specifying the complete application id, just a prefix would work. The former option seems better as it prevents inadvertent deletion of internal topics while also allowing to force delete them. > kafka-streams-application-reset deletes topics not belonging to specified > application-id > ---------------------------------------------------------------------------------------- > > Key: KAFKA-14922 > URL: https://issues.apache.org/jira/browse/KAFKA-14922 > Project: Kafka > Issue Type: Bug > Components: streams, tools > Affects Versions: 3.4.0 > Reporter: Jørgen > Priority: Major > Labels: beginner, needs-kip, newbie > > 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: > {code:java} > 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.{code} > 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. -- This message was sent by Atlassian Jira (v8.20.10#820010)