You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Flavio Junqueira (JIRA)" <ji...@apache.org> on 2016/04/12 11:17:25 UTC

[jira] [Resolved] (KAFKA-3205) Error in I/O with host (java.io.EOFException) raised in producer

     [ https://issues.apache.org/jira/browse/KAFKA-3205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Flavio Junqueira resolved KAFKA-3205.
-------------------------------------
       Resolution: Won't Fix
         Reviewer: Flavio Junqueira
    Fix Version/s:     (was: 0.10.0.0)

The changes currently in 0.9+ doesn't have as many messages printed out because both ends, client and server, enforce the connection timeout. The change discussed in the pull request doesn't print it in the case of a passive close initiated by the server (in 0.9 the timeout is enforced), which is desirable only because it pollutes the logs otherwise. It is better that we keep these messages in 0.9 and later to be informed of connections being closed. They are not supposed to happen very often, but if it turns out to be a problem, we can revisit this issue.   

> Error in I/O with host (java.io.EOFException) raised in producer
> ----------------------------------------------------------------
>
>                 Key: KAFKA-3205
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3205
>             Project: Kafka
>          Issue Type: Bug
>          Components: clients
>    Affects Versions: 0.8.2.1, 0.9.0.0
>            Reporter: Jonathan Raffre
>
> In a situation with a Kafka broker in 0.9 and producers still in 0.8.2.x, producers seems to raise the following after a variable amount of time since start :
> {noformat}
> 2016-01-29 14:33:13,066 WARN [] o.a.k.c.n.Selector: Error in I/O with 172.22.2.170
> java.io.EOFException: null
>         at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:62) ~[org.apache.kafka.kafka-clients-0.8.2.0.jar:na]
>         at org.apache.kafka.common.network.Selector.poll(Selector.java:248) ~[org.apache.kafka.kafka-clients-0.8.2.0.jar:na]
>         at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:192) [org.apache.kafka.kafka-clients-0.8.2.0.jar:na]
>         at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191) [org.apache.kafka.kafka-clients-0.8.2.0.jar:na]
>         at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122) [org.apache.kafka.kafka-clients-0.8.2.0.jar:na]
>         at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66-internal]
> {noformat}
> This can be reproduced successfully by doing the following :
>  * Start a 0.8.2 producer connected to the 0.9 broker
>  * Wait 15 minutes, exactly
>  * See the error in the producer logs.
> Oddly, this also shows up in an active producer but after 10 minutes of activity.
> Kafka's server.properties :
> {noformat}
> broker.id=1
> listeners=PLAINTEXT://:9092
> port=9092
> num.network.threads=2
> num.io.threads=2
> socket.send.buffer.bytes=1048576
> socket.receive.buffer.bytes=1048576
> socket.request.max.bytes=104857600
> log.dirs=/mnt/data/kafka
> num.partitions=4
> auto.create.topics.enable=false
> delete.topic.enable=true
> num.recovery.threads.per.data.dir=1
> log.retention.hours=48
> log.retention.bytes=524288000
> log.segment.bytes=52428800
> log.retention.check.interval.ms=60000
> log.roll.hours=24
> log.cleanup.policy=delete
> log.cleaner.enable=true
> zookeeper.connect=127.0.0.1:2181
> zookeeper.connection.timeout.ms=1000000
> {noformat}
> Producer's configuration :
> {noformat}
> 	compression.type = none
> 	metric.reporters = []
> 	metadata.max.age.ms = 300000
> 	metadata.fetch.timeout.ms = 60000
> 	acks = all
> 	batch.size = 16384
> 	reconnect.backoff.ms = 10
> 	bootstrap.servers = [127.0.0.1:9092]
> 	receive.buffer.bytes = 32768
> 	retry.backoff.ms = 500
> 	buffer.memory = 33554432
> 	timeout.ms = 30000
> 	key.serializer = class org.apache.kafka.common.serialization.StringSerializer
> 	retries = 3
> 	max.request.size = 5000000
> 	block.on.buffer.full = true
> 	value.serializer = class org.apache.kafka.common.serialization.StringSerializer
> 	metrics.sample.window.ms = 30000
> 	send.buffer.bytes = 131072
> 	max.in.flight.requests.per.connection = 5
> 	metrics.num.samples = 2
> 	linger.ms = 0
> 	client.id = 
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)