I don't think this is a bug. Currently we don't support timing out
connections in the clients, which would be a good feature to add. As a
result the connection remains until the LB kills it. When that happens you
get a message logged that the connection was unexpectedly closed, which I
think is what should happen (you can disable the logging in log4j if you
don't want it).

It would be nice to implement a client-side connection LRU for unused
connections. I filed a ticket to track this:
https://issues.apache.org/jira/browse/KAFKA-1941

-Jay

On Tue, Feb 10, 2015 at 11:33 AM, Bhavesh Mistry <mistry.p.bhav...@gmail.com
> wrote:

> HI Ewen,
>
> The root of the problem is leak of TCP connection which idle for while.  It
> is just a log message as  you mentioned, but suppose you have 50 or more
> producer instances created by application and everyone of then will print
> above log that becomes little concern.
>
> We configured producer with bootstrap list as  "LB:port1" and it is set to
> TCP port forward to "broker:port2".  When producer fetches Cluster Metadata
> and  discovers that TCP connection "LB:port1" is not part of  "broker
> cluster or topology", it should close connection to "LB:port1" (In my
> opinion, this would be expected behavior).
>
> As you mentioned, producer behavior is normal and this error is harmless.
> If you consider this as a bug,  please let me know and I will file jira
> ticket for this.
>
> We are on non-release 0.8.2 from trunk.
>
> Thanks,
>
> Bhavesh
>
>
>
> Thanks,
>
> Bhavesh
>
> On Tue, Feb 10, 2015 at 12:29 AM, Ewen Cheslack-Postava <e...@confluent.io
> >
> wrote:
>
> > Bhavesh,
> >
> > I'm unclear what the impact is here. The line numbers don't match up
> > exactly with trunk or 0.8.2.0, but it looks like this exception is just
> > caught and logged. As far as I can tell the producer would continue to
> > function normally. Does this have any impact on the producer or is the
> > concern just that the exception is being logged?
> >
> > On Mon, Feb 9, 2015 at 11:21 PM, Bhavesh Mistry <
> > mistry.p.bhav...@gmail.com>
> > wrote:
> >
> > > HI Kafka Team,
> > >
> > > Please confirm if you would like to open Jira issue to track this ?
> > >
> > > Thanks,
> > >
> > > Bhavesh
> > >
> > > On Mon, Feb 9, 2015 at 12:39 PM, Bhavesh Mistry <
> > > mistry.p.bhav...@gmail.com>
> > > wrote:
> > >
> > > > Hi Kakfa Team,
> > > >
> > > > We are getting this connection reset by pears after couple of minute
> > > aster
> > > > start-up of producer due to infrastructure deployment strategies we
> > have
> > > > adopted from LinkedIn.
> > > >
> > > > We have LB hostname and port as seed server, and all producers are
> > > getting
> > > > following exception because of TCP idle connection timeout set on LB
> > > (which
> > > > is 2 minutes and Kafka TCP connection idle is set to 10 minutes).
> >  This
> > > > seems to be  minor bug to close TCP connection after discovering that
> > > seed
> > > > server is not part of brokers list immediately.
> > > >
> > > >
> > > > java.io.IOException: Connection reset by peer
> > > >     at sun.nio.ch.FileDispatcher.read0(Native Method)
> > > >     at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
> > > >     at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
> > > >     at sun.nio.ch.IOUtil.read(IOUtil.java:171)
> > > >     at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
> > > >     at
> > > >
> > >
> >
> org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:60)
> > > >     at
> org.apache.kafka.common.network.Selector.poll(Selector.java:242)
> > > >     at
> > > org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:178)
> > > >     at
> > > >
> org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:175)
> > > >     at
> > > >
> org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:115)
> > > >     at java.lang.Thread.run(Thread.java:662)
> > > > java.io.IOException: Connection reset by peer
> > > >     at sun.nio.ch.FileDispatcher.read0(Native Method)
> > > >     at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
> > > >     at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
> > > >     at sun.nio.ch.IOUtil.read(IOUtil.java:171)
> > > >     at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
> > > >     at
> > > >
> > >
> >
> org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:60)
> > > >     at
> org.apache.kafka.common.network.Selector.poll(Selector.java:242)
> > > >     at
> > > org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:178)
> > > >     at
> > > >
> org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:175)
> > > >     at
> > > >
> org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:115)
> > > >     at java.lang.Thread.run(Thread.java:662)
> > > >
> > > >
> > > > Thanks,
> > > >
> > > > Bhavesh
> > > >
> > > >
> > >
> >
> >
> >
> > --
> > Thanks,
> > Ewen
> >
>

Reply via email to