You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Nilesh Panchal (Jira)" <ji...@apache.org> on 2021/07/23 06:30:00 UTC

[jira] [Updated] (SSHD-1200) ERR - LEAK: ByteBuf.release() was not called before it's garbage-collected.

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

Nilesh Panchal updated SSHD-1200:
---------------------------------
    Description: 
h3. Expected behavior

Below error should not come:
 'ERROR ResourceLeakDetector:319 - LEAK: ByteBuf.release() was not called before it's garbage-collected.'
h3. Actual behavior

2021-07-21 15:45:00 ERROR ResourceLeakDetector:319 - LEAK: ByteBuf.release() was not called before it's garbage-collected. See [https://netty.io/wiki/reference-counted-objects.html] for more information.
 Recent access records:
 [#1|https://github.com/netty/netty/pull/1]:
 io.netty.buffer.AdvancedLeakAwareByteBuf.getBytes(AdvancedLeakAwareByteBuf.java:250)
 org.apache.sshd.netty.NettySupport$1.getRawBytes(NettySupport.java:44)
 org.apache.sshd.common.util.buffer.ByteArrayBuffer.putBuffer(ByteArrayBuffer.java:150)
 org.apache.sshd.common.util.buffer.Buffer.putBuffer(Buffer.java:491)
 org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:510)
 org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:63)
 org.apache.sshd.netty.NettyIoSession.channelRead(NettyIoSession.java:181)
 org.apache.sshd.netty.NettyIoSession$Adapter.channelRead(NettyIoSession.java:216)
 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
 io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
 io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
 io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
 io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
 io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 java.lang.Thread.run(Thread.java:748)
 [#2|https://github.com/netty/netty/pull/2]:
 Hint: 'NettyIoSession$Adapter#0' will handle the message from this point.
 io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:116)
 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
 io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
 io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
 io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
 io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
 io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
 io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
 io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
 io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 java.lang.Thread.run(Thread.java:748)
 [#3|https://github.com/netty/netty/pull/3]:
 Hint: 'DefaultChannelPipeline$HeadContext#0' will handle the message from this point.
 io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:116)
 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
 io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
 io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
 io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
 io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
 io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
 io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 java.lang.Thread.run(Thread.java:748)
 [#4|https://github.com/netty/netty/pull/4]:
 io.netty.buffer.AdvancedLeakAwareByteBuf.writeBytes(AdvancedLeakAwareByteBuf.java:634)
 io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350)
 io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151)
 io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
 io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
 io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
 io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 java.lang.Thread.run(Thread.java:748)
 Created at:
 io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:402)
 io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:187)
 io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:178)
 io.netty.buffer.AbstractByteBufAllocator.ioBuffer(AbstractByteBufAllocator.java:139)
 io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator$MaxMessageHandle.allocate(DefaultMaxMessagesRecvByteBufAllocator.java:114)
 io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:150)
 io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
 io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
 io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
 io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 java.lang.Thread.run(Thread.java:748)
h3. Steps to reproduce

NA - The err occurs on a random basis.
h3. Minimal yet complete reproducer code (or URL to code)

NA
h3. Netty version
 # Initially '4.1.29.Final' version was being used in our app when we noticed the err.
 FYI- We are using the below mentioned jars in our app:
 netty-buffer
 netty-codec
 netty-common
 netty-handler
 netty-resolver
 netty-transport

 # Then we upgraded above jars to '4.1.65.Final', but still the same error is appearing in our app logs.

FYI - We are using below apache commons dependencies :-
 commons-codec - 1.10
 commons-io - 2.4
 commons-lang - 2.6
 commons-logging - 1.0.3

and
 below 'org.apache.sshd' dependencies - version 2.1.0 for all:
 sshd-common
 shd-sftp
 sshd-scp
 sshd-core
 sshd-mina
 sshd-netty
 sshd-putty
 sshd-cli
h3. JVM version (e.g. {{java -version}})

Java HotSpot(TM) 64-Bit Server VM (25.281-b25) for linux-amd64 JRE (1.8.0_281-b25)
h3. OS version (e.g. {{uname -a}})

Operating System - Linux
 OS Version - 11 SP4

Is this info sufficient?
 We are checking the exact os version with our Unix team, once we get the details, we will update.

We had reported this issue to netty, according to them - It's not a Netty bug.
 and they asked us to Release the {{Bytebuf}} by ourself (If we've got the option),

but we are not directly using Bytebuf, it is called by org.apache.sshd.netty.NettySupport$1.getRawBytes(NettySupport.java:44)

netty mentioned :
 this class is responsible for releasing {{Bytebuf}}.

Just call {{Bytebuf#release}} method.
 Refer - [https://github.com/netty/netty/issues/11502]

Could you please fix this issue asap?

*Queries :-*
 # Is this issue fixed in any of the mina-sshd/sshd-netty versions?
 If yes - could you please let us know - which version?
 If not - could you please let us know in which version this fix is expected?
FYI - I have checked NettySupport.java - getRawBytes() method on 'sshd-2.7.0' version also, but ByteBuf#release is not present in this method.
[https://github.com/apache/mina-sshd/blob/sshd-2.7.0/sshd-netty/src/main/java/org/apache/sshd/netty/NettySupport.java]
 # Could you please check apache commons dependencies which we are using?
 Do we need to also update these libs version to support netty higher version?

  was:
h3. Expected behavior

Below error should not come:
'ERROR ResourceLeakDetector:319 - LEAK: ByteBuf.release() was not called before it's garbage-collected.'
h3. Actual behavior

2021-07-21 15:45:00 ERROR ResourceLeakDetector:319 - LEAK: ByteBuf.release() was not called before it's garbage-collected. See [https://netty.io/wiki/reference-counted-objects.html] for more information.
Recent access records:
[#1|https://github.com/netty/netty/pull/1]:
io.netty.buffer.AdvancedLeakAwareByteBuf.getBytes(AdvancedLeakAwareByteBuf.java:250)
org.apache.sshd.netty.NettySupport$1.getRawBytes(NettySupport.java:44)
org.apache.sshd.common.util.buffer.ByteArrayBuffer.putBuffer(ByteArrayBuffer.java:150)
org.apache.sshd.common.util.buffer.Buffer.putBuffer(Buffer.java:491)
org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:510)
org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:63)
org.apache.sshd.netty.NettyIoSession.channelRead(NettyIoSession.java:181)
org.apache.sshd.netty.NettyIoSession$Adapter.channelRead(NettyIoSession.java:216)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
java.lang.Thread.run(Thread.java:748)
[#2|https://github.com/netty/netty/pull/2]:
Hint: 'NettyIoSession$Adapter#0' will handle the message from this point.
io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:116)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
java.lang.Thread.run(Thread.java:748)
[#3|https://github.com/netty/netty/pull/3]:
Hint: 'DefaultChannelPipeline$HeadContext#0' will handle the message from this point.
io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:116)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
java.lang.Thread.run(Thread.java:748)
[#4|https://github.com/netty/netty/pull/4]:
io.netty.buffer.AdvancedLeakAwareByteBuf.writeBytes(AdvancedLeakAwareByteBuf.java:634)
io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350)
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151)
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
java.lang.Thread.run(Thread.java:748)
Created at:
io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:402)
io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:187)
io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:178)
io.netty.buffer.AbstractByteBufAllocator.ioBuffer(AbstractByteBufAllocator.java:139)
io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator$MaxMessageHandle.allocate(DefaultMaxMessagesRecvByteBufAllocator.java:114)
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:150)
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
java.lang.Thread.run(Thread.java:748)
h3. Steps to reproduce

NA - The err occurs on a random basis.
h3. Minimal yet complete reproducer code (or URL to code)

NA
h3. Netty version
 # Initially '4.1.29.Final' version was being used in our app when we noticed the err.
FYI- We are using the below mentioned jars in our app:
netty-buffer
netty-codec
netty-common
netty-handler
netty-resolver
netty-transport

 # Then we upgraded above jars to '4.1.65.Final', but still the same error is appearing in our app logs.

FYI - We are using below apache commons dependencies :-
commons-codec - 1.10
commons-io - 2.4
commons-lang - 2.6
commons-logging - 1.0.3

and
below 'org.apache.sshd' dependencies - version 2.1.0 for all:
sshd-common
shd-sftp
sshd-scp
sshd-core
sshd-mina
sshd-netty
sshd-putty
sshd-cli
h3. JVM version (e.g. {{java -version}})

Java HotSpot(TM) 64-Bit Server VM (25.281-b25) for linux-amd64 JRE (1.8.0_281-b25)
h3. OS version (e.g. {{uname -a}})

Operating System - Linux
OS Version - 11 SP4

Is this info sufficient?
We are checking the exact os version with our Unix team, once we get the details, we will update.

We had reported this issue to netty, according to them - It's not a Netty bug.
and they asked us to Release the {{Bytebuf}} by ourself (If we've got the option),

but we are not directly using Bytebuf, it is called by org.apache.sshd.netty.NettySupport$1.getRawBytes(NettySupport.java:44)

netty mentioned :
this class is responsible for releasing {{Bytebuf}}.

Just call {{Bytebuf#release}} method.
Refer - https://github.com/netty/netty/issues/11502

Could you please fix this issue asap?

*Queries :-*
 # Is this issue fixed in any of the mina-sshd/sshd-netty versions?
If yes - could you please let us know - which version?
If not - could you please let us know in which version this fix is expected?

 # Could you please check apache commons dependencies which we are using?
Do we need to also update these libs version to support netty higher version?


> ERR - LEAK: ByteBuf.release() was not called before it's garbage-collected.
> ---------------------------------------------------------------------------
>
>                 Key: SSHD-1200
>                 URL: https://issues.apache.org/jira/browse/SSHD-1200
>             Project: MINA SSHD
>          Issue Type: Bug
>    Affects Versions: 2.1.0
>            Reporter: Nilesh Panchal
>            Priority: Major
>
> h3. Expected behavior
> Below error should not come:
>  'ERROR ResourceLeakDetector:319 - LEAK: ByteBuf.release() was not called before it's garbage-collected.'
> h3. Actual behavior
> 2021-07-21 15:45:00 ERROR ResourceLeakDetector:319 - LEAK: ByteBuf.release() was not called before it's garbage-collected. See [https://netty.io/wiki/reference-counted-objects.html] for more information.
>  Recent access records:
>  [#1|https://github.com/netty/netty/pull/1]:
>  io.netty.buffer.AdvancedLeakAwareByteBuf.getBytes(AdvancedLeakAwareByteBuf.java:250)
>  org.apache.sshd.netty.NettySupport$1.getRawBytes(NettySupport.java:44)
>  org.apache.sshd.common.util.buffer.ByteArrayBuffer.putBuffer(ByteArrayBuffer.java:150)
>  org.apache.sshd.common.util.buffer.Buffer.putBuffer(Buffer.java:491)
>  org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:510)
>  org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:63)
>  org.apache.sshd.netty.NettyIoSession.channelRead(NettyIoSession.java:181)
>  org.apache.sshd.netty.NettyIoSession$Adapter.channelRead(NettyIoSession.java:216)
>  io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>  io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>  io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
>  io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
>  io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>  io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>  io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
>  io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
>  io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
>  io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
>  io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
>  io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
>  io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
>  io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
>  io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  java.lang.Thread.run(Thread.java:748)
>  [#2|https://github.com/netty/netty/pull/2]:
>  Hint: 'NettyIoSession$Adapter#0' will handle the message from this point.
>  io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:116)
>  io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
>  io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
>  io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
>  io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>  io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>  io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
>  io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
>  io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
>  io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
>  io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
>  io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
>  io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
>  io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
>  io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  java.lang.Thread.run(Thread.java:748)
>  [#3|https://github.com/netty/netty/pull/3]:
>  Hint: 'DefaultChannelPipeline$HeadContext#0' will handle the message from this point.
>  io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:116)
>  io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
>  io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
>  io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
>  io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
>  io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
>  io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
>  io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
>  io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
>  io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
>  io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  java.lang.Thread.run(Thread.java:748)
>  [#4|https://github.com/netty/netty/pull/4]:
>  io.netty.buffer.AdvancedLeakAwareByteBuf.writeBytes(AdvancedLeakAwareByteBuf.java:634)
>  io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350)
>  io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151)
>  io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
>  io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
>  io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
>  io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
>  io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
>  io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
>  io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  java.lang.Thread.run(Thread.java:748)
>  Created at:
>  io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:402)
>  io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:187)
>  io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:178)
>  io.netty.buffer.AbstractByteBufAllocator.ioBuffer(AbstractByteBufAllocator.java:139)
>  io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator$MaxMessageHandle.allocate(DefaultMaxMessagesRecvByteBufAllocator.java:114)
>  io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:150)
>  io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
>  io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
>  io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
>  io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
>  io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
>  io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
>  io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  java.lang.Thread.run(Thread.java:748)
> h3. Steps to reproduce
> NA - The err occurs on a random basis.
> h3. Minimal yet complete reproducer code (or URL to code)
> NA
> h3. Netty version
>  # Initially '4.1.29.Final' version was being used in our app when we noticed the err.
>  FYI- We are using the below mentioned jars in our app:
>  netty-buffer
>  netty-codec
>  netty-common
>  netty-handler
>  netty-resolver
>  netty-transport
>  # Then we upgraded above jars to '4.1.65.Final', but still the same error is appearing in our app logs.
> FYI - We are using below apache commons dependencies :-
>  commons-codec - 1.10
>  commons-io - 2.4
>  commons-lang - 2.6
>  commons-logging - 1.0.3
> and
>  below 'org.apache.sshd' dependencies - version 2.1.0 for all:
>  sshd-common
>  shd-sftp
>  sshd-scp
>  sshd-core
>  sshd-mina
>  sshd-netty
>  sshd-putty
>  sshd-cli
> h3. JVM version (e.g. {{java -version}})
> Java HotSpot(TM) 64-Bit Server VM (25.281-b25) for linux-amd64 JRE (1.8.0_281-b25)
> h3. OS version (e.g. {{uname -a}})
> Operating System - Linux
>  OS Version - 11 SP4
> Is this info sufficient?
>  We are checking the exact os version with our Unix team, once we get the details, we will update.
> We had reported this issue to netty, according to them - It's not a Netty bug.
>  and they asked us to Release the {{Bytebuf}} by ourself (If we've got the option),
> but we are not directly using Bytebuf, it is called by org.apache.sshd.netty.NettySupport$1.getRawBytes(NettySupport.java:44)
> netty mentioned :
>  this class is responsible for releasing {{Bytebuf}}.
> Just call {{Bytebuf#release}} method.
>  Refer - [https://github.com/netty/netty/issues/11502]
> Could you please fix this issue asap?
> *Queries :-*
>  # Is this issue fixed in any of the mina-sshd/sshd-netty versions?
>  If yes - could you please let us know - which version?
>  If not - could you please let us know in which version this fix is expected?
> FYI - I have checked NettySupport.java - getRawBytes() method on 'sshd-2.7.0' version also, but ByteBuf#release is not present in this method.
> [https://github.com/apache/mina-sshd/blob/sshd-2.7.0/sshd-netty/src/main/java/org/apache/sshd/netty/NettySupport.java]
>  # Could you please check apache commons dependencies which we are using?
>  Do we need to also update these libs version to support netty higher version?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@mina.apache.org
For additional commands, e-mail: dev-help@mina.apache.org