Description
The contract of the transactional producer API is to not call any transactional method after a ProducerFenced exception was thrown.
Streams however, does an unconditional call within StreamTask#close() to abortTransaction() in case of unclean shutdown. We need to distinguish between a ProducerFenced and other unclean shutdown cases.
Attachments
Issue Links
- is duplicated by
-
KAFKA-6237 stream stopped working after exception: Cannot execute transactional method because we are in an error state
- Resolved
- is related to
-
KAFKA-5604 All producer methods should raise `ProducerFencedException` after the first time.
- Resolved
- links to