You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Ben Augarten (Jira)" <ji...@apache.org> on 2022/05/13 18:17:00 UTC

[jira] [Created] (KAFKA-13901) Exactly once producer cannot start due to TimeoutException: Timeout expired after 300000ms awaiting InitProducerId

Ben Augarten created KAFKA-13901:
------------------------------------

             Summary: Exactly once producer cannot start due to TimeoutException: Timeout expired after 300000ms awaiting InitProducerId
                 Key: KAFKA-13901
                 URL: https://issues.apache.org/jira/browse/KAFKA-13901
             Project: Kafka
          Issue Type: Bug
    Affects Versions: 2.5.1
            Reporter: Ben Augarten
         Attachments: broker-logs-renamed-topics, client-logs-truncated

I'm currently running into this problem running org.apache.kafka:kafka and org.apache.kafka:kafka-client version 2.5.1.  

 

The symptoms of this problem are very similar to https://issues.apache.org/jira/browse/KAFKA-8803

 

I'm currently running a test that runs one embedded Kafka broker and an embedded Flink cluster (version 1.13). The Flink application uses an exactly once Kafka producer. When initializing, the FlinkKafkaProducer calls [initTransactions|https://github.com/apache/flink/blob/be969dd73b533b03acaba1d81d03b29fccc54bfa/flink-connectors/flink-connector-kafka/src/main/java/org/apache/flink/streaming/connectors/kafka/FlinkKafkaProducer.java#L1282-L1285] for each of ~50 underlying KafkaProducers. On some executions of the test (but not all of them), one of these calls to InitProducerId times out. Based on my reading of the logs and some debugging sessions, it seems that the failing producer continually tries to issue FindCoordinatorRequests, but [Sender.awaitNodeReady|https://github.com/apache/kafka/blob/2.5/clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java#L511-L526] returns null. It seems like every time [NetworkClient.leastLoadedNode|https://github.com/apache/kafka/blob/2.5/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java#L662] returns null prints that the one broker "is neither ready for sending or connecting"([source|https://github.com/apache/kafka/blob/2.5/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java#L692]).

I set the producer max.block.ms to be 5mins and you can see in the logs that this goes on and on for the full 5 minutes. During this time, the broker appears healthy (and even serves other requests). It seems that the client is not even attempting to reconnect to the broker during this 5 minutes, though I truthfully don't understand what could be going wrong looking through the code. Do you have any ideas? Any more information I could provide? 




--
This message was sent by Atlassian Jira
(v8.20.7#820007)