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)