I am using Kafka 0.8.2.0 (Scala 2.10). In my log files, I see the following message intermittently. This seems like a connectivity issue, but I'm running both in my localhost.
Is this a harmless warning message or should I do something to avoid it?
2015-10-30 14:12:38.015 WARN 4251 --- [ad | producer-1] [ ] o.apache.kafka.common.network.Selector : Error in I/O with localhost/127.0.0.1
java.io.EOFException: null
at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:62)
at org.apache.kafka.common.network.Selector.poll(Selector.java:248)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:192)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122)
at java.lang.Thread.run(Thread.java:745)
It seems like your producer can not connect to kafka broker. I suggest you try to send some messages with kafka console producer in order to verify your system is configured properly.
This is a bit later to the party, but may help someone - it would have helped me.
What you're seeing occurs because the Kafka broker is passively closing the connection after a certain period of idleness is exceeded. It's defined by this broker property: connections.max.idle.ms - the default is 10 minutes.
Apparently the kafka client in 0.8.x doesn't honour that setting and just leaves idle connections open. You'll see the warning in your logs but it should have no bad effect on your application.
More details here: https://issues.apache.org/jira/browse/KAFKA-3205
The broker config is documented here: https://kafka.apache.org/090/documentation/#configuration
In that table you'll find:
Hope that helps.