Title: Memory leak in HttpResponseStreamHandler · Issue #624 · docker-java/docker-java · GitHub
Open Graph Title: Memory leak in HttpResponseStreamHandler · Issue #624 · docker-java/docker-java
X Title: Memory leak in HttpResponseStreamHandler · Issue #624 · docker-java/docker-java
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 b...
Open Graph 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 - ...
X 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.ResourceLeakDet...
Opengraph URL: https://github.com/docker-java/docker-java/issues/624
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Memory leak in HttpResponseStreamHandler","articleBody":"The problem is similar to #560 but happens with `HttpResponseStreamHandler`. It's inner class `HttpResponseInputStream` doesn't seem to manage `ByteBuf current`.\n\n```\nERROR - 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.\nWARNING: 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.\nRecent access records: 4\n#4:\n io.netty.buffer.AdvancedLeakAwareByteBuf.readByte(AdvancedLeakAwareByteBuf.java:399)\n com.github.dockerjava.netty.handler.HttpResponseStreamHandler$HttpResponseInputStream.read(HttpResponseStreamHandler.java:84)\n java.io.InputStream.read(InputStream.java:179)\n java.io.InputStream.read(InputStream.java:101)\n org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:67)\n org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:48)\n ...\n java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n java.util.concurrent.FutureTask.run(FutureTask.java:266)\n java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n java.lang.Thread.run(Thread.java:745)\n#3:\n io.netty.buffer.AdvancedLeakAwareByteBuf.readByte(AdvancedLeakAwareByteBuf.java:399)\n com.github.dockerjava.netty.handler.HttpResponseStreamHandler$HttpResponseInputStream.read(HttpResponseStreamHandler.java:84)\n java.io.InputStream.read(InputStream.java:170)\n java.io.InputStream.read(InputStream.java:101)\n org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:67)\n org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:48)\n ...\n java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n java.util.concurrent.FutureTask.run(FutureTask.java:266)\n java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n java.lang.Thread.run(Thread.java:745)\n#2:\n io.netty.buffer.AdvancedLeakAwareByteBuf.readByte(AdvancedLeakAwareByteBuf.java:399)\n com.github.dockerjava.netty.handler.HttpResponseStreamHandler$HttpResponseInputStream.read(HttpResponseStreamHandler.java:84)\n java.io.InputStream.read(InputStream.java:179)\n java.io.InputStream.read(InputStream.java:101)\n org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:67)\n org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:48)\n ...\n java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n java.util.concurrent.FutureTask.run(FutureTask.java:266)\n java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n java.lang.Thread.run(Thread.java:745)\n#1:\n io.netty.buffer.AdvancedLeakAwareByteBuf.readByte(AdvancedLeakAwareByteBuf.java:399)\n com.github.dockerjava.netty.handler.HttpResponseStreamHandler$HttpResponseInputStream.read(HttpResponseStreamHandler.java:84)\n java.io.InputStream.read(InputStream.java:170)\n java.io.InputStream.read(InputStream.java:101)\n org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:67)\n org.apache.commons.compress.utils.IOUtils.copy(IOUtils.java:48)\n ...\n java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n java.util.concurrent.FutureTask.run(FutureTask.java:266)\n java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n java.lang.Thread.run(Thread.java:745)\nCreated at:\n io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:271)\n io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:179)\n io.netty.buffer.UnsafeByteBufUtil.copy(UnsafeByteBufUtil.java:464)\n io.netty.buffer.PooledUnsafeDirectByteBuf.copy(PooledUnsafeDirectByteBuf.java:309)\n io.netty.buffer.PooledSlicedByteBuf.copy(PooledSlicedByteBuf.java:96)\n io.netty.buffer.AbstractByteBuf.copy(AbstractByteBuf.java:1161)\n com.github.dockerjava.netty.handler.HttpResponseStreamHandler.channelRead0(HttpResponseStreamHandler.java:30)\n com.github.dockerjava.netty.handler.HttpResponseStreamHandler.channelRead0(HttpResponseStreamHandler.java:20)\n io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)\n io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\n io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:334)\n io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:326)\n com.github.dockerjava.netty.handler.HttpResponseHandler.channelRead0(HttpResponseHandler.java:72)\n com.github.dockerjava.netty.handler.HttpResponseHandler.channelRead0(HttpResponseHandler.java:33)\n io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)\n io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\n io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:334)\n io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:326)\n io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:233)\n io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\n io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:334)\n io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:326)\n io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:428)\n io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)\n io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)\n io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:243)\n io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\n io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:334)\n io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:326)\n io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1320)\n io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\n io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:334)\n io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:905)\n io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:957)\n io.netty.channel.epoll.EpollDomainSocketChannel$EpollDomainUnsafe.epollInReady(EpollDomainSocketChannel.java:140)\n io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:384)\n io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:300)\n io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:742)\n io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:145)\n java.lang.Thread.run(Thread.java:745) \n```\n","author":{"url":"https://github.com/tejksat","@type":"Person","name":"tejksat"},"datePublished":"2016-07-05T15:03:52.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/624/docker-java/issues/624"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:9617e848-f8d6-ce96-9a95-102a12b0a140 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C382:3EDCA0:32E3CD8:45A1DE7:6972C2C2 |
| html-safe-nonce | bfabe8234107a394e2b13abeb80780a473b86b9ae0b296132dd5244edbdb03e7 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMzgyOjNFRENBMDozMkUzQ0Q4OjQ1QTFERTc6Njk3MkMyQzIiLCJ2aXNpdG9yX2lkIjoiMTg3MDQ3NjAzMTc1MTc5OTQ5MCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | ac626d78a20866501f077d1060727d6f982e87b37d9e113066e13ceaebb8fab5 |
| hovercard-subject-tag | issue:163873045 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/docker-java/docker-java/624/issue_layout |
| twitter:image | https://opengraph.githubassets.com/2b5061a11d8f32d4f3049d9ff18c3b7b2bd625b3461415c49fcc4a1b5ceeea58/docker-java/docker-java/issues/624 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/2b5061a11d8f32d4f3049d9ff18c3b7b2bd625b3461415c49fcc4a1b5ceeea58/docker-java/docker-java/issues/624 |
| og:image:alt | 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 - ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | tejksat |
| hostname | github.com |
| expected-hostname | github.com |
| None | aa656e37a6f46b81c2416d9c983f7c54e264ee31be17c0e6c9414b9f9f9c6eb4 |
| turbo-cache-control | no-preview |
| go-import | github.com/docker-java/docker-java git https://github.com/docker-java/docker-java.git |
| octolytics-dimension-user_id | 7772003 |
| octolytics-dimension-user_login | docker-java |
| octolytics-dimension-repository_id | 20415251 |
| octolytics-dimension-repository_nwo | docker-java/docker-java |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 20415251 |
| octolytics-dimension-repository_network_root_nwo | docker-java/docker-java |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | add6bd61de5b348d2978a698a5796a7d0438e7be |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width