nicktelford commented on code in PR #16922: URL: https://github.com/apache/kafka/pull/16922#discussion_r1741141160
########## streams/src/main/java/org/apache/kafka/streams/processor/internals/TaskManager.java: ########## @@ -454,6 +479,24 @@ private void handleTasksWithoutStateUpdater(final Map<TaskId, Set<TopicPartition final Map<TaskId, Set<TopicPartition>> standbyTasksToCreate, final Map<Task, Set<TopicPartition>> tasksToRecycle, final Set<Task> tasksToCloseClean) { + final Map<Task, Set<TopicPartition>> initialStandbyTasksToRecycle = assignInitialTasks(activeTasksToCreate, logPrefix, topologyMetadata, changelogReader); + final Map<Task, Set<TopicPartition>> initialStandbyTasksToUse = assignInitialTasks(activeTasksToCreate, logPrefix, topologyMetadata, changelogReader); + final Set<TaskId> recycledInitialTasks = new HashSet<>(initialStandbyTasksToRecycle.size() + initialStandbyTasksToUse.size()); + + // if this was the last local thread to receive its assignment, close all the remaining Tasks, as they are not needed + stateDirectory.closeInitialTasksIfLastAssginedThread(); + + // recycle the initial standbys to active, and remove them from the set of actives that need to be created + tasksToRecycle.putAll(initialStandbyTasksToRecycle); Review Comment: Ahh yes, good point. I'm not sure how I missed that. I've simplified it in https://github.com/apache/kafka/pull/16922/commits/a1d5fba1e19a621d093b5eeb5e41db8cb588f644. I'm not sure if we can do something similar for the `StateUpdater` version of assignment. That code is organised a little differently. I'll look into it. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org