You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Jason Gustafson (JIRA)" <ji...@apache.org> on 2019/04/18 00:03:00 UTC

[jira] [Commented] (KAFKA-8248) Producer may fail IllegalStateException

    [ https://issues.apache.org/jira/browse/KAFKA-8248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16820597#comment-16820597 ] 

Jason Gustafson commented on KAFKA-8248:
----------------------------------------

Looking at the code, I think the problem might be that we don't update the time before calling `client.send()` inside `maybeSendTransactionalRequest`. Basically `NetworkClient.isReady` might return a different value at different times, so if the latest time is not used, it might return incorrectly.

> Producer may fail IllegalStateException
> ---------------------------------------
>
>                 Key: KAFKA-8248
>                 URL: https://issues.apache.org/jira/browse/KAFKA-8248
>             Project: Kafka
>          Issue Type: Bug
>          Components: producer 
>    Affects Versions: 2.0.0
>            Reporter: Matthias J. Sax
>            Priority: Major
>
> In a Kafka Streams application, we observed the following log from the producer:
> {quote}2019-04-17T01:58:25.898Z 17466081 [kafka-producer-network-thread | client-id-enrichment-gcoint-StreamThread-7-0_10-producer] ERROR org.apache.kafka.clients.producer.internals.Sender - [Producer clientId=client-id-enrichment-gcoint-StreamThread-7-0_10-producer, transactionalId=application-id-enrichment-gcoint-0_10] Uncaught error in kafka producer I/O thread: 
> 2019-04-17T01:58:25.898Z java.lang.IllegalStateException: Attempt to send a request to node 1 which is not ready.
> 2019-04-17T01:58:25.898Z at org.apache.kafka.clients.NetworkClient.doSend(NetworkClient.java:430)
> 2019-04-17T01:58:25.898Z at org.apache.kafka.clients.NetworkClient.send(NetworkClient.java:411)
> 2019-04-17T01:58:25.898Z at org.apache.kafka.clients.producer.internals.Sender.maybeSendTransactionalRequest(Sender.java:362)
> 2019-04-17T01:58:25.898Z at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:214)
> 2019-04-17T01:58:25.898Z at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:163)
> 2019-04-17T01:58:25.898Z at java.lang.Thread.run(Thread.java:748)
> {quote}
> Later, Kafka Streams (running with EOS enabled) shuts down with a `TimeoutException` that occurs during rebalance. It seem that the above error results in this `TimeoutException`. However, and `IllegalStateException` seem to indicate a bug in the producer.



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