hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Duo Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16635) RpcClient under heavy load leaks some netty bytebuf
Date Mon, 19 Sep 2016 05:25:21 GMT

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

Duo Zhang commented on HBASE-16635:
-----------------------------------

The cleanupConnection does not need to throw Exception as the release method does not throw
any exception. And you can use ReferenceCountUtil.safeRelease if you want to make sure  there
is no exception thrown.

And for SaslWrapHandler, we need to release the ByteBuf create by calling queue.remove, not
the wrapped ByteBuf. The wrapped ByteBuf will be released when actually writing out. And we
also need to override the disconnect method to release the ByteBuf buffered in queue.

Thanks.

> RpcClient under heavy load leaks some netty bytebuf
> ---------------------------------------------------
>
>                 Key: HBASE-16635
>                 URL: https://issues.apache.org/jira/browse/HBASE-16635
>             Project: HBase
>          Issue Type: Bug
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Minor
>             Fix For: 2.0.0
>
>         Attachments: HBASE-16635.patch
>
>
> Yet to analyse the actual root cause. 
> But the case is that when we run a PE tool with 50 threads under heavy load when the
writes are clogged I think we have some netty Bytebuf leak. Not sure if it is a serious issue
but we get this log
> {code}
> 2016-09-14 19:37:09,767 ERROR [Default-IPC-NioEventLoopGroup-1-16] util.ResourceLeakDetector:
LEAK: ByteBuf.release() was not called before it's garbage-collected. Enable advanced leak
reporting to find out where the leak occurred. To enable advanced leak reporting, specify
the JVM option '-Dio.netty.leakDetection.level=advanced' or call ResourceLeakDetector.setLevel()
See http://netty.io/wiki/reference-counted-objects.html for more information.
> {code}
> So reading the given link it is because of some ByteBuf that was not released properly
by the client and hence it gets GCed automatically. Netty provides tips and tricks to find
the root cause. Will get back here.



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

Mime
View raw message