Tom Lee created KAFKA-2193:
------------------------------
Summary: Intermittent network + DNS issues can cause brokers to
permanently drop out of a cluster
Key: KAFKA-2193
URL: https://issues.apache.org/jira/browse/KAFKA-2193
Project: Kafka
Issue Type: Bug
Affects Versions: 0.8.1.1
Reporter: Tom Lee
Our Kafka cluster recently experienced some intermittent network & DNS
resolution issues such that this call to connect to Zookeeper failed with an
UnknownHostException:
(https://github.com/sgroschupf/zkclient/blob/0630c9c6e67ab49a51e80bfd939e4a0d01a69dfe/src/main/java/org/I0Itec/zkclient/ZkConnection.java#L67)
We observed this happen during a processStateChanged(KeeperState.Expired) call:
https://github.com/sgroschupf/zkclient/blob/0630c9c6e67ab49a51e80bfd939e4a0d01a69dfe/src/main/java/org/I0Itec/zkclient/ZkClient.java#L649
the session expiry was in turn caused by what we suspect to be intermittent
network issues.
The failed ZK reconnect seemed to put ZkClient into a state where it would
never recover and the Kafka broker into a state where it would need a restart
to rejoin the cluster: ZkConnection._zk == null, 0.3.x doesn't appear to
automatically try to make further attempts to reconnect after the failure, and
obviously no further state transitions seem likely to happen without a
connection to ZK.
The newer zkclient 0.4.0/0.5.0 releases will helpfully fire a notification when
this occurs, so the brokers have an opportunity to handle this sort of failure
in a more graceful manner (e.g. by trying to reconnect after some backoff
period):
https://github.com/sgroschupf/zkclient/blob/0.4.0/src/main/java/org/I0Itec/zkclient/ZkClient.java#L461
Happy to provide more info here if I can.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)