I ran a command via the API call for docker exec. It produced several GB of output on stderr. This resulted in the following:
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at io.netty.buffer.UnpooledHeapByteBuf.capacity(UnpooledHeapByteBuf.java:115)
at io.netty.buffer.AbstractByteBuf.ensureWritable0(AbstractByteBuf.java:270)
at io.netty.buffer.AbstractByteBuf.ensureWritable(AbstractByteBuf.java:251)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1023)
at com.github.dockerjava.netty.handler.FramedResponseStreamHandler.channelRead0(FramedResponseStreamHandler.java:48)
at com.github.dockerjava.netty.handler.FramedResponseStreamHandler.channelRead0(FramedResponseStreamHandler.java:23)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
at io.netty.channel.ChannelHandlerInvokerUtil.invokeChannelReadNow(ChannelHandlerInvokerUtil.java:83)
at io.netty.channel.DefaultChannelHandlerInvoker.invokeChannelRead(DefaultChannelHandlerInvoker.java:154)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:354)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:145)
at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:233)
at io.netty.channel.ChannelHandlerInvokerUtil.invokeChannelReadNow(ChannelHandlerInvokerUtil.java:83)
at io.netty.channel.DefaultChannelHandlerInvoker.invokeChannelRead(DefaultChannelHandlerInvoker.java:154)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:354)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:145)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:1078)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:125)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:510)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:467)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:381)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:353)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:742)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:745)
Activity
KostyaSha commented on Mar 30, 2016
test examples...
marcuslinke commented on Mar 30, 2016
Probably a rawBuffer.discardReadBytes() is missing after https://github.com/docker-java/docker-java/blob/master/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java#L64
KostyaSha commented on Mar 30, 2016
That what i also thought.
davidtnorth commented on Mar 31, 2016
I'll try and come up with a minimal reproduction; shouldn't be hard to do something involving "cat" and /dev/zero
Fix issue #531
marcuslinke commented on Mar 31, 2016
@davidtnorth Could you build docker-java from branch issue-531 and test if the fix solves the issue for you please?
Merge pull request #542 from docker-java/issue-531
marcuslinke commented on Apr 8, 2016
@davidtnorth Could you test with latest 3.0.0-SNAPSHOT please?
KostyaSha commented on Apr 8, 2016
@marcuslinke do we push master to snapshots?
marcuslinke commented on Apr 8, 2016
@KostyaSha I think so. We call https://github.com/docker-java/docker-java/blob/master/travis-after-success.sh after travis successfully built the project. There is a mvn deploy called.
marcuslinke commented on Apr 8, 2016
Confirmed: See https://travis-ci.org/docker-java/docker-java/builds/121777177#L2610
Fix issue docker-java#531
Merge pull request docker-java#542 from docker-java/issue-531