Hi James,
I've tested and confirmed that without adding
"bootstrap.setOption("child.keepAlive", true);", we get leaked connections just
as we did with Flume/Thrift.
I've created https://issues.apache.org/jira/browse/AVRO-1040 to address the
issue.
Cheers,
Frank Grimes
On 2012-03-01, at 2:27 PM, James Baldassari wrote:
> Hi Frank,
>
> I read the thread you referenced. So the root cause of the problem is that
> the firewall is terminating the connection without doing a proper TCP
> teardown, right?
>
> This probably isn't a very common problem, but it seems like enabling TCP
> keepalives in NettyServer (and on the client side as well) is a good idea in
> general. Are you sure that keepalives aren't enabled by default in Netty? I
> searched for a few minutes but couldn't find any documentation on it. Have
> you actually seen this socket leak with Avro when behind a firewall?
>
> We might want to also consider allowing the ServerBootstrap to be passed into
> NettyServer via constructor or setter method. That way these types of
> settings could be tweaked without any Avro code changes.
>
> Would you mind creating an issue for this?
>
> Thanks,
> James
>
>
> On Wed, Feb 29, 2012 at 3:20 PM, Frank Grimes <[email protected]> wrote:
> Hi All,
>
> I think that NettyServer needs to be changed to include the following line:
>
> bootstrap.setOption("child.keepAlive", true);
>
> Otherwise, it'll be susceptible to the following problem:
>
> http://mail-archives.apache.org/mod_mbox/incubator-flume-user/201201.mbox/<[email protected]>
>
> Not sure if HttpServer is also affected by this because I haven't yet dug
> into the Jetty code to see if it sets TCP keep-alive on its sockets.
>
> Let me know if I should file a JIRA and/or provide a patch...
>
> Regards,
>
> Frank Grimes
>