Matthias J. Sax created KAFKA-16350:
---------------------------------------
Summary: StateUpdated does not init transaction after canceling
task close action
Key: KAFKA-16350
URL: https://issues.apache.org/jira/browse/KAFKA-16350
Project: Kafka
Issue Type: Bug
Components: streams
Reporter: Matthias J. Sax
With EOSv2, we use a thread producer shared across all tasks. We init tx on the
producer with each _task_ (due to EOSv1 which uses a producer per task), and
have a guard in place to only init tx a single time.
If we hit an error, we close the producer and create a new one, which is still
not initialized for transaction. At the same time, with state updater, we
schedule a "close task" action on error.
For each task we get back, we do cancel the "close task" action, to actually
keep the task. If this happens for _all_ tasks, we don't have any task in state
CRATED at hand, and thus we never init the producer for transactions, because
we assume this was already done.
On the first `send` request, we crash with an IllegalStateException:{{{}{}}}
{code:java}
Invalid transition attempted from state UNINITIALIZED to state IN_TRANSACTION
{code}
This bug is exposed via EOSIntegrationTest (logs attached).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)