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

Michael Han resolved ZOOKEEPER-2737.
------------------------------------
       Resolution: Fixed
    Fix Version/s: 3.5.3
                   3.6.0

Issue resolved by pull request 207
[https://github.com/apache/zookeeper/pull/207]

> NettyServerCnxFactory leaks connection if exception happens while writing to 
> a channel.
> ---------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2737
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2737
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.5.2
>            Reporter: Michael Han
>            Assignee: Michael Han
>            Priority: Critical
>              Labels: connection, netty, server
>             Fix For: 3.6.0, 3.5.3
>
>
> Found this while debugging occasionally failed unit tests. Currently we do 
> this if exception occurs during writing to a channel with Netty:
> {code}
> @Override
>         public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent 
> e)
>             throws Exception
>         {
>             LOG.warn("Exception caught " + e, e.getCause());
>             NettyServerCnxn cnxn = (NettyServerCnxn) ctx.getAttachment();
>             if (cnxn != null) {
>                 if (LOG.isDebugEnabled()) {
>                     LOG.debug("Closing " + cnxn);
>                     cnxn.close();
>                 }
>             }
>         }
> {code}
> So the connection is only closed when debug mode is enabled. This is 
> problematic as lots of clean up code is abstracted inside the close and 
> without proper close the connection we are leaking resources.
> [Commit 
> log|https://github.com/apache/zookeeper/blob/master/src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java#L147]
>  indicates the issue exists since day 1 with ZOOKEEPER-733. Note the original 
> patch uploaded to ZOOKEEPER-733 has this close call in right place, and the 
> call gets moved around during iteration of the patches w/o gets noticed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to