-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Labels
Description
The problem is similar to #560 but happens with HttpResponseStreamHandler. It's inner class HttpResponseInputStream doesn't seem to manage ByteBuf current.
ERROR - etty.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.
WARNING: 1 leak records were discarded because the leak record count is limited to 4. Use system property io.netty.leakDetection.maxRecords to increase the limit.
Recent access records: 4
#4:
io.netty.buffer.AdvancedLeakAwareByteBuf.readByte(AdvancedLeakAwareByteBuf.java:399)
com.github.dockerjava.netty.handler.HttpResponseStreamHandler$HttpResponseInputStream.read(HttpResponseStreamHandler.java:84)
java.io.InputStream.read(InputStream.java:179)
java.io.InputStream.read(InputStream.java:101)
org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:67)
org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:48)
...
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
#3:
io.netty.buffer.AdvancedLeakAwareByteBuf.readByte(AdvancedLeakAwareByteBuf.java:399)
com.github.dockerjava.netty.handler.HttpResponseStreamHandler$HttpResponseInputStream.read(HttpResponseStreamHandler.java:84)
java.io.InputStream.read(InputStream.java:170)
java.io.InputStream.read(InputStream.java:101)
org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:67)
org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:48)
...
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
#2:
io.netty.buffer.AdvancedLeakAwareByteBuf.readByte(AdvancedLeakAwareByteBuf.java:399)
com.github.dockerjava.netty.handler.HttpResponseStreamHandler$HttpResponseInputStream.read(HttpResponseStreamHandler.java:84)
java.io.InputStream.read(InputStream.java:179)
java.io.InputStream.read(InputStream.java:101)
org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:67)
org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:48)
...
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
#1:
io.netty.buffer.AdvancedLeakAwareByteBuf.readByte(AdvancedLeakAwareByteBuf.java:399)
com.github.dockerjava.netty.handler.HttpResponseStreamHandler$HttpResponseInputStream.read(HttpResponseStreamHandler.java:84)
java.io.InputStream.read(InputStream.java:170)
java.io.InputStream.read(InputStream.java:101)
org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:67)
org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:48)
...
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
Created at:
io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:271)
io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:179)
io.netty.buffer.UnsafeByteBufUtil.copy(UnsafeByteBufUtil.java:464)
io.netty.buffer.PooledUnsafeDirectByteBuf.copy(PooledUnsafeDirectByteBuf.java:309)
io.netty.buffer.PooledSlicedByteBuf.copy(PooledSlicedByteBuf.java:96)
io.netty.buffer.AbstractByteBuf.copy(AbstractByteBuf.java:1161)
com.github.dockerjava.netty.handler.HttpResponseStreamHandler.channelRead0(HttpResponseStreamHandler.java:30)
com.github.dockerjava.netty.handler.HttpResponseStreamHandler.channelRead0(HttpResponseStreamHandler.java:20)
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:334)
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:326)
com.github.dockerjava.netty.handler.HttpResponseHandler.channelRead0(HttpResponseHandler.java:72)
com.github.dockerjava.netty.handler.HttpResponseHandler.channelRead0(HttpResponseHandler.java:33)
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:334)
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:326)
io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:233)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:334)
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:326)
io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:428)
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:243)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:334)
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:326)
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1320)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:334)
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:905)
io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:957)
io.netty.channel.epoll.EpollDomainSocketChannel$EpollDomainUnsafe.epollInReady(EpollDomainSocketChannel.java:140)
io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:384)
io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:300)
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:742)
io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:145)
java.lang.Thread.run(Thread.java:745)