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

Goldstein Lyor commented on SSHD-833:
-------------------------------------

That explains it - if you look at 
{{DefaultIoServiceFactoryFactory#newInstance}} then it scans for the 1st 
implementation it finds with no specific order. Since as you say you place both 
MINA and Netty in your classpath (and NIO2 is always there), it will use one of 
them (cannot foresee which). The correct way to set in such a case is to use

{{-Dorg.apache.sshd.common.io.IoServiceFactoryFactory=...fully qualified class 
name of your factory...}} - in this case 
{{org.apache.sshd.common.io.nio2.Nio2ServiceFactoryFactory}} (you can also use 
the builtin name {{-Dorg.apache.sshd.common.io.IoServiceFactoryFactory=nio2}} - 
see {{BuiltinIoServiceFactoryFactories}} enum)

> Netty: ByteBuf LEAK message
> ---------------------------
>
>                 Key: SSHD-833
>                 URL: https://issues.apache.org/jira/browse/SSHD-833
>             Project: MINA SSHD
>          Issue Type: Bug
>    Affects Versions: 2.0.0
>            Reporter: jpalacios
>            Priority: Major
>
> We recently switched from the {{MinaServiceFactoryFactory}} to the 
> {{NettyIoServiceFactoryFactory}}. Now whenever the application starts we see 
> the following message:
> {code:java}
> ERROR [nioEventLoopGroup-2-2]  io.netty.util.ResourceLeakDetector LEAK: 
> ByteBuf.release() was not called before it's garbage-collected. See 
> http://netty.io/wiki/reference-counted-objects.html for more information.
> Recent access records:
> Created at:
>         
> io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:331)
>         
> io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:185)
>         
> io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:176)
>         
> io.netty.buffer.AbstractByteBufAllocator.ioBuffer(AbstractByteBufAllocator.java:137)
>         
> io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator$MaxMessageHandle.allocate(DefaultMaxMessagesRecvByteBufAllocator.java:114)
>         
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:147)
>         
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:647)
>         
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:582)
>         
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:499)
>         io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:461)
>         
> io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
>         
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>         java.lang.Thread.run(Thread.java:748)
> {code}
> It will happen a certain number of times (first time it was 5, then it was 
> 20) but then it won't happen any more.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to