kafka-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Gustafson (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (KAFKA-8484) ProducerId reset can cause IllegalStateException
Date Wed, 12 Jun 2019 19:58:00 GMT

     [ https://issues.apache.org/jira/browse/KAFKA-8484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jason Gustafson resolved KAFKA-8484.
------------------------------------
    Resolution: Fixed

> ProducerId reset can cause IllegalStateException
> ------------------------------------------------
>
>                 Key: KAFKA-8484
>                 URL: https://issues.apache.org/jira/browse/KAFKA-8484
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Jason Gustafson
>            Assignee: Jason Gustafson
>            Priority: Major
>             Fix For: 2.3.0
>
>
> If the producerId is reset while inflight requests are pending, we can get the follow
uncaught error.
> {code}
> [2019-06-03 08:20:45,320] ERROR [Producer clientId=producer-1] Uncaught error in request
completion: (org.apache.kafka.clients.NetworkClient)                                     
                                                                         
> java.lang.IllegalStateException: Sequence number for partition test_topic-13 is going
to become negative : -965
>         at org.apache.kafka.clients.producer.internals.TransactionManager.adjustSequencesDueToFailedBatch(TransactionManager.java:561)
                                                                                         
                           
>         at org.apache.kafka.clients.producer.internals.Sender.failBatch(Sender.java:744)
>         at org.apache.kafka.clients.producer.internals.Sender.failBatch(Sender.java:717)
>         at org.apache.kafka.clients.producer.internals.Sender.completeBatch(Sender.java:667)
>         at org.apache.kafka.clients.producer.internals.Sender.handleProduceResponse(Sender.java:574)
>         at org.apache.kafka.clients.producer.internals.Sender.access$100(Sender.java:75)
>         at org.apache.kafka.clients.producer.internals.Sender$1.onComplete(Sender.java:818)
>         at org.apache.kafka.clients.ClientResponse.onComplete(ClientResponse.java:109)
>         at org.apache.kafka.clients.NetworkClient.completeResponses(NetworkClient.java:561)
>         at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:553)
>         at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:335)
>         at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:253)
>         at java.lang.Thread.run(Thread.java:748)
> {code}
> The impact of this is that a failed batch will not be completed until the delivery timeout
is exceeded. We are missing validation when we receive a produce response that the producerId
and epoch still match.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message