wateray created KAFKA-3885:
------------------------------
Summary: Kafka new producer cannot failover
Key: KAFKA-3885
URL: https://issues.apache.org/jira/browse/KAFKA-3885
Project: Kafka
Issue Type: Bug
Components: clients
Affects Versions: 0.10.0.0, 0.9.0.1, 0.8.2.2, 0.9.0.0
Reporter: wateray
This bug can reproduce by the following steps.
The cluster has 2 brokers.
a) start a new producer, then send message, it works well.
b) Then kill one broker, it works well.
c) Then restart the broker, it works well.
d) Then kill the other broker, the producer can't failover.
The the producer print log infinity.
org.apache.kafka.common.errors.TimeoutException: Batch containing 1 record(s)
expired due to timeout while requesting metadata from brokers for
lwb_test_p50_r2-29
================
When producer sends msg, it detected that metadata should update.
But at this code, class: NetworkClient ,method: leastLoadedNode
List<Node> nodes = this.metadataUpdater.fetchNodes();
nodes only return one result, and the returned node is the killed node, so the
producer cannot failover!
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)