[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15943590#comment-15943590
 ] 

ASF GitHub Bot commented on ZOOKEEPER-2737:
-------------------------------------------

Github user phunt commented on the issue:

    https://github.com/apache/zookeeper/pull/207
  
    Ugh, sorry about that. ;-)
    
    +1


> 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
>
> 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