mjsax commented on code in PR #20833:
URL: https://github.com/apache/kafka/pull/20833#discussion_r2505947028


##########
streams/src/main/java/org/apache/kafka/streams/processor/internals/StreamsPartitionAssignor.java:
##########
@@ -1458,6 +1458,14 @@ protected boolean maybeUpdateSubscriptionVersion(final 
int receivedAssignmentMet
 
     @Override
     public void onAssignment(final Assignment assignment, final 
ConsumerGroupMetadata metadata) {
+        final Set<Task> tasksWithOpenTransactions = taskManager.allOwnedTasks()
+            .values()
+            .stream()
+            .filter(t -> t.commitNeeded())

Review Comment:
   Is this check the right one? Honest question. Could be correct. Just not 
sure. -- Btw: We actually do verify `commitNeeded()` inside 
`taskManager.commit` anyway.
   
   We when call `taskManager.commit()` base on regular commit interval, we are 
using `.filter(t -> t.state() == Task.State.RUNNING || t.state() == 
Task.State.RESTORING)` to find all tasks we want to commit.
   
   On some other code path, we `.filter(Task::isActive)`.
   
   Note: the tricky thing about EOS is, that if a single task need to be 
committed, we need to make sure to commit all tasks, to not violate EOS...
   
   🤔 -- Maybe @lucasbru can help on this question?



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to