nicktelford commented on code in PR #16922:
URL: https://github.com/apache/kafka/pull/16922#discussion_r1741241148


##########
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:
   Had a look at the version for the StateUpdater, and sadly we can't just add 
the Standbys to the StateUpdater and let the existing code sort out the 
recycling etc, because the StateUpdater thread is still running in the 
background and attempts to start actually processing the Standbys after they've 
been added but before they've been recycled.



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

Reply via email to