Matthias J. Sax created KAFKA-18476:
---------------------------------------
Summary: KafkaStreams should swallow TransactionAbortedException
Key: KAFKA-18476
URL: https://issues.apache.org/jira/browse/KAFKA-18476
Project: Kafka
Issue Type: Improvement
Components: streams
Reporter: Matthias J. Sax
A TransactionAbortedException could be handed back to the producer `Callback`
if there is pending batches which are flushed after `abortTransaction()` was
called.
KafkaStreams only calls `abortTransaction()` after some previous error (could
be fatal, for which we just cleanup and shutdown, but could also be a
recoverable error for which KS would cleanup and resume), and thus a
TransactionAbortedException is just a follow up error that should be swallowed.
Right now, `TransactionAbortedError` is passed into the
ProductionExceptionHandler callback, and thus KS would FAIL by default, even
after a recoverable error. Instead of passing the exception into the error
handler, and let the user code take care of it, KS should just swallow the
exception directly, and not call the handler at all.
The current workaround to avoid failing for a recoverable error would be, to
write a custom ProductionExceptionHandler which always returns CONTINUE for
TransactionAbortedException.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)