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