Alieh Saeedi created KAFKA-19128: ------------------------------------ Summary: Kafka Streams should not get offsets when close dirty Key: KAFKA-19128 URL: https://issues.apache.org/jira/browse/KAFKA-19128 Project: Kafka Issue Type: Bug Reporter: Alieh Saeedi
Kafka Streams call `prepareCommit()` in `Taskmanager#closeTaskDirty()`. The initial purpose of this call has been only to flush the case if necessary before suspending and closing the topology. But, calling `prepareCommit()` results into calling other methods as well, which compute the next offsets for the partition. However, the dirty task must not get committed and therefore, getting offsets should not be needed as well. Once, we encountered the following exception in AK 3.9: {code:java} Streams Soak encountered IllegalStateException: You can only check the position for partitions assigned to this consumer.{code} However, due to changes and improvements in AK 4.0, this exception can not happen any more. BTW, the issue must get fixed. Proposed fixes are as follows: 1. Introduction of a flag {{prepareCommit(boolean clean)}} to determine clean or unclean shutdown, avoiding unnecessary offset checking during dirty shutdowns. 2. Separating `flush` and `prepareCommit`. When closing dirty or in other required cases, only call `flush()`. {{}} -- This message was sent by Atlassian Jira (v8.20.10#820010)