[
https://issues.apache.org/jira/browse/KAFKA-10631?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bruno Cadonna updated KAFKA-10631:
----------------------------------
Description:
The transaction manager does currently not handle producer fenced errors
returned from a offset commit request.
We found this bug because we encountered the following exception in our soak
cluster:
{code:java}
org.apache.kafka.streams.errors.StreamsException: Error encountered trying to
commit a transaction [stream-thread [i-037c09b3c48522d8d-StreamThread-3] task
[0_0]]
at
org.apache.kafka.streams.processor.internals.StreamsProducer.commitTransaction(StreamsProducer.java:256)
at
org.apache.kafka.streams.processor.internals.TaskManager.commitOffsetsOrTransaction(TaskManager.java:1050)
at
org.apache.kafka.streams.processor.internals.TaskManager.commit(TaskManager.java:1013)
at
org.apache.kafka.streams.processor.internals.StreamThread.maybeCommit(StreamThread.java:886)
at
org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:677)
at
org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:553)
at
org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:512)
[2020-10-22T04:09:54+02:00]
(streams-soak-2-7-eos-alpha_soak_i-037c09b3c48522d8d_streamslog) Caused by:
org.apache.kafka.common.KafkaException: Unexpected error in
TxnOffsetCommitResponse: There is a newer producer with the same
transactionalId which fences the current one.
at
org.apache.kafka.clients.producer.internals.TransactionManager$TxnOffsetCommitHandler.handleResponse(TransactionManager.java:1726)
at
org.apache.kafka.clients.producer.internals.TransactionManager$TxnRequestHandler.onComplete(TransactionManager.java:1278)
at
org.apache.kafka.clients.ClientResponse.onComplete(ClientResponse.java:109)
at
org.apache.kafka.clients.NetworkClient.completeResponses(NetworkClient.java:584)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:576)
at
org.apache.kafka.clients.producer.internals.Sender.maybeSendAndPollTransactionalRequest(Sender.java:415)
at
org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:313)
at
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:240)
at java.lang.Thread.run(Thread.java:748)
{code}
was:
The transaction manager does currently not handle producer fenced errors
returned from a offset commit request.
We found this bug because we saw the following exception in our soak cluster:
{code:java}
org.apache.kafka.streams.errors.StreamsException: Error encountered trying to
commit a transaction [stream-thread [i-037c09b3c48522d8d-StreamThread-3] task
[0_0]]
at
org.apache.kafka.streams.processor.internals.StreamsProducer.commitTransaction(StreamsProducer.java:256)
at
org.apache.kafka.streams.processor.internals.TaskManager.commitOffsetsOrTransaction(TaskManager.java:1050)
at
org.apache.kafka.streams.processor.internals.TaskManager.commit(TaskManager.java:1013)
at
org.apache.kafka.streams.processor.internals.StreamThread.maybeCommit(StreamThread.java:886)
at
org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:677)
at
org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:553)
at
org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:512)
[2020-10-22T04:09:54+02:00]
(streams-soak-2-7-eos-alpha_soak_i-037c09b3c48522d8d_streamslog) Caused by:
org.apache.kafka.common.KafkaException: Unexpected error in
TxnOffsetCommitResponse: There is a newer producer with the same
transactionalId which fences the current one.
at
org.apache.kafka.clients.producer.internals.TransactionManager$TxnOffsetCommitHandler.handleResponse(TransactionManager.java:1726)
at
org.apache.kafka.clients.producer.internals.TransactionManager$TxnRequestHandler.onComplete(TransactionManager.java:1278)
at
org.apache.kafka.clients.ClientResponse.onComplete(ClientResponse.java:109)
at
org.apache.kafka.clients.NetworkClient.completeResponses(NetworkClient.java:584)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:576)
at
org.apache.kafka.clients.producer.internals.Sender.maybeSendAndPollTransactionalRequest(Sender.java:415)
at
org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:313)
at
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:240)
at java.lang.Thread.run(Thread.java:748)
{code}
> ProducerFencedException is not Handled on Offest Commit
> -------------------------------------------------------
>
> Key: KAFKA-10631
> URL: https://issues.apache.org/jira/browse/KAFKA-10631
> Project: Kafka
> Issue Type: Bug
> Components: clients
> Affects Versions: 2.7.0
> Reporter: Bruno Cadonna
> Priority: Blocker
>
> The transaction manager does currently not handle producer fenced errors
> returned from a offset commit request.
> We found this bug because we encountered the following exception in our soak
> cluster:
> {code:java}
> org.apache.kafka.streams.errors.StreamsException: Error encountered trying to
> commit a transaction [stream-thread [i-037c09b3c48522d8d-StreamThread-3] task
> [0_0]]
> at
> org.apache.kafka.streams.processor.internals.StreamsProducer.commitTransaction(StreamsProducer.java:256)
> at
> org.apache.kafka.streams.processor.internals.TaskManager.commitOffsetsOrTransaction(TaskManager.java:1050)
> at
> org.apache.kafka.streams.processor.internals.TaskManager.commit(TaskManager.java:1013)
> at
> org.apache.kafka.streams.processor.internals.StreamThread.maybeCommit(StreamThread.java:886)
> at
> org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:677)
> at
> org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:553)
> at
> org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:512)
> [2020-10-22T04:09:54+02:00]
> (streams-soak-2-7-eos-alpha_soak_i-037c09b3c48522d8d_streamslog) Caused by:
> org.apache.kafka.common.KafkaException: Unexpected error in
> TxnOffsetCommitResponse: There is a newer producer with the same
> transactionalId which fences the current one.
> at
> org.apache.kafka.clients.producer.internals.TransactionManager$TxnOffsetCommitHandler.handleResponse(TransactionManager.java:1726)
> at
> org.apache.kafka.clients.producer.internals.TransactionManager$TxnRequestHandler.onComplete(TransactionManager.java:1278)
> at
> org.apache.kafka.clients.ClientResponse.onComplete(ClientResponse.java:109)
> at
> org.apache.kafka.clients.NetworkClient.completeResponses(NetworkClient.java:584)
> at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:576)
> at
> org.apache.kafka.clients.producer.internals.Sender.maybeSendAndPollTransactionalRequest(Sender.java:415)
> at
> org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:313)
> at
> org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:240)
> at java.lang.Thread.run(Thread.java:748)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)