You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Small memory leak that eventually causes our application to be OOMed by the kernel after 11 days of continous uptime. We have captured this leak, running our application with -Dio.netty.leakDetection.level=advanced:
[04:07:09 ERROR] [io.netty.util.ResourceLeakDetector]: 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:
Created at:
io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:349)
io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:187)
io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:178)
io.netty.channel.unix.PreferredDirectByteBufAllocator.ioBuffer(PreferredDirectByteBufAllocator.java:53)
io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator$MaxMessageHandle.allocate(DefaultMaxMessagesRecvByteBufAllocator.java:114)
io.netty.channel.epoll.EpollRecvByteAllocatorHandle.allocate(EpollRecvByteAllocatorHandle.java:75)
io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:777)
io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:502)
io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407)
io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050)
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
java.base/java.lang.Thread.run(Unknown Source)
Steps to reproduce
Start application
Let it run for a few hours with player connections (this is a Minecraft proxy)
Receive ResourceLeakDetector warning
Minimal yet complete reproducer code (or URL to code)
openjdk version "11.0.5" 2019-10-15
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.5+10)
Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.17.0, JRE 11 Linux amd64-64-Bit Compressed References 20191016_358 (JIT enabled, AOT enabled)
OpenJ9 - 77c1cf708
OMR - 20db4fbc
JCL - 2a7af5674b based on jdk-11.0.5+10)
OS version (e.g. uname -a)
The application runs inside a Docker container based on the adoptopenjdk/openjdk11-openj9:alpine-jre image. The container has the following uname -a output:
Linux proxy-date96 4.19.0-0.bpo.6-amd64 #1 SMP Debian 4.19.67-2~bpo9+1 (2019-09-10) x86_64 Linux
The text was updated successfully, but these errors were encountered:
Apparently I do not have full information needed to get a full report to you all (mistakenly have logs only from the default simple level). Closing this for now and reopening when I have more information and I'm truly sure it's a Netty problem (I have not proven this yet).
Expected behavior
No memory leak, application is stable over time.
Actual behavior
Small memory leak that eventually causes our application to be OOMed by the kernel after 11 days of continous uptime. We have captured this leak, running our application with
-Dio.netty.leakDetection.level=advanced
:Steps to reproduce
ResourceLeakDetector
warningMinimal yet complete reproducer code (or URL to code)
I don't have a minimal reproduction case, but the application is open source at https://github.com/VelocityPowered/Velocity/tree/decode-multiple
Netty version
4.1.43.Final
JVM version (e.g.
java -version
)OS version (e.g.
uname -a
)The application runs inside a Docker container based on the
adoptopenjdk/openjdk11-openj9:alpine-jre
image. The container has the followinguname -a
output:Linux proxy-date96 4.19.0-0.bpo.6-amd64 #1 SMP Debian 4.19.67-2~bpo9+1 (2019-09-10) x86_64 Linux
The text was updated successfully, but these errors were encountered: