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)