# Out of memory/heap

**URL:** <https://discuss.elastic.co/t/out-of-memory-heap/9342>\
**Category:** Elasticsearch\
**Created:** [October 12, 2012, 7:51pm UTC](https://discuss.elastic.co/t/out-of-memory-heap/9342 "2012-10-12T19:51:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![courtenay](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/courtenay/32/1933_2.png) [@courtenay](https://discuss.elastic.co/u/courtenay)\
**Post date:** [October 12, 2012, 7:51pm UTC](https://discuss.elastic.co/t/out-of-memory-heap/9342/1 "2012-10-12T19:51:46Z")

</div>

Just got this out of memory error:

[08:45:38,311][WARN][http.netty] [Portal] Caught exception  
while handling client http traffic, closing connection [id: 0xbfe4192a, /IP-redacted:53149  
=\> /IP-redacted:9200]  
java.lang.OutOfMemoryError: Java heap space  
at org.elasticsearch.common.netty.buffer.HeapChannelBuffer.(  
HeapChannelBuffer.java:42)  
at org.elasticsearch.common.netty.buffer.BigEndianHeapChannelBuffer. (  
BigEndianHeapChannelBuffer.java:34)  
at org.elasticsearch.common.netty.buffer.ChannelBuffers.buffer(  
ChannelBuffers.java:134)  
at org.elasticsearch.common.netty.buffer.HeapChannelBufferFactory.getBuffer(  
HeapChannelBufferFactory.java:69)  
at org.elasticsearch.common.netty.buffer.CompositeChannelBuffer.copy(  
CompositeChannelBuffer.java:568)  
at org.elasticsearch.common.netty.buffer.AbstractChannelBuffer.copy(  
AbstractChannelBuffer.java:522)  
at org.elasticsearch.common.netty.handler.codec.http.HttpChunkAggregator.  
appendToCumulation(HttpChunkAggregator.java:207)  
at org.elasticsearch.common.netty.handler.codec.http.HttpChunkAggregator.  
messageReceived(HttpChunkAggregator.java:174)  
at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.  
handleUpstream(SimpleChannelUpstreamHandler.java:75)  
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.  
sendUpstream(DefaultChannelPipeline.java:565)  
at org.elasticsearch.common.netty.channel.  
DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(  
DefaultChannelPipeline.java:793)  
at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(  
Channels.java:296)  
at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.  
unfoldAndFireMessageReceived(FrameDecoder.java:455)  
at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.  
callDecode(ReplayingDecoder.java:538)  
at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.  
messageReceived(ReplayingDecoder.java:437)  
at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.  
handleUpstream(SimpleChannelUpstreamHandler.java:75)  
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.  
sendUpstream(DefaultChannelPipeline.java:565)  
at org.elasticsearch.common.netty.channel.  
DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(  
DefaultChannelPipeline.java:793)  
at org.elasticsearch.common.netty.OpenChannelsHandler.handleUpstream(  
OpenChannelsHandler.java:74)  
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.  
sendUpstream(DefaultChannelPipeline.java:565)  
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.  
sendUpstream(DefaultChannelPipeline.java:560)  
at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(  
Channels.java:268)  
at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(  
Channels.java:255)  
at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(  
NioWorker.java:84)  
at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.  
processSelectedKeys(AbstractNioWorker.java:471)  
at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(  
AbstractNioWorker.java:332)  
at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker  
.java:35)  
at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(  
ThreadRenamingRunnable.java:102)  
at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(  
DeadLockProofWorker.java:42)  
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor  
.java:886)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.  
java:908)  
at java.lang.Thread.run(Thread.java:662)

Any ideas? It is running out of heap during http transport?

Why is it that elasticsearch will basically just lock up after an error  
like this - isn't there a way to rescue from exceptions and just move on?

--Courtenay

--

---

<div class="post-metadata">

**Author:** ![simonw\_2](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/simonw_2/32/1130_2.png) [@simonw\_2](https://discuss.elastic.co/u/simonw_2)\
**Post date:** [October 13, 2012, 6:29am UTC](https://discuss.elastic.co/t/out-of-memory-heap/9342/2 "2012-10-13T06:29:01Z")

</div>

Unfortunately you can't really recover from OOM. You really need to restart  
the node. The question here is why do you run OOM, the StackTrace is only  
the place where it really hit the OOM but likely not where the memory goes.  
can you provide more details like your usage pattern ie. if you do faceting  
/ sorting etc. and your settings for Xmx etc.

simon

On Friday, October 12, 2012 9:51:46 PM UTC+2, courtenay wrote:

> Just got this out of memory error:
> 
> [08:45:38,311][WARN][http.netty] [Portal] Caughtexception  
> while handling client http traffic, closing connection [id: 0xbfe4192a, /IP-redacted:53149  
> =\> /IP-redacted:9200]  
> java.lang.OutOfMemoryError: Java heap space  
> at org.elasticsearch.common.netty.buffer.HeapChannelBuffer.(  
> HeapChannelBuffer.java:42)  
> at org.elasticsearch.common.netty.buffer.BigEndianHeapChannelBuffer.  
> (BigEndianHeapChannelBuffer.java:34)  
> at org.elasticsearch.common.netty.buffer.ChannelBuffers.buffer(  
> ChannelBuffers.java:134)  
> at org.elasticsearch.common.netty.buffer.HeapChannelBufferFactory.  
> getBuffer(HeapChannelBufferFactory.java:69)  
> at org.elasticsearch.common.netty.buffer.CompositeChannelBuffer.copy(  
> CompositeChannelBuffer.java:568)  
> at org.elasticsearch.common.netty.buffer.AbstractChannelBuffer.copy(  
> AbstractChannelBuffer.java:522)  
> at org.elasticsearch.common.netty.handler.codec.http.HttpChunkAggregator.  
> appendToCumulation(HttpChunkAggregator.java:207)  
> at org.elasticsearch.common.netty.handler.codec.http.HttpChunkAggregator.  
> messageReceived(HttpChunkAggregator.java:174)  
> at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.  
> handleUpstream(SimpleChannelUpstreamHandler.java:75)  
> at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.  
> sendUpstream(DefaultChannelPipeline.java:565)  
> at org.elasticsearch.common.netty.channel.  
> DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(  
> DefaultChannelPipeline.java:793)  
> at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(  
> Channels.java:296)  
> at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.  
> unfoldAndFireMessageReceived(FrameDecoder.java:455)  
> at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.  
> callDecode(ReplayingDecoder.java:538)  
> at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.  
> messageReceived(ReplayingDecoder.java:437)  
> at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.  
> handleUpstream(SimpleChannelUpstreamHandler.java:75)  
> at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.  
> sendUpstream(DefaultChannelPipeline.java:565)  
> at org.elasticsearch.common.netty.channel.  
> DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(  
> DefaultChannelPipeline.java:793)  
> at org.elasticsearch.common.netty.OpenChannelsHandler.handleUpstream(  
> OpenChannelsHandler.java:74)  
> at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.  
> sendUpstream(DefaultChannelPipeline.java:565)  
> at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.  
> sendUpstream(DefaultChannelPipeline.java:560)  
> at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(  
> Channels.java:268)  
> at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(  
> Channels.java:255)  
> at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(  
> NioWorker.java:84)  
> at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.  
> processSelectedKeys(AbstractNioWorker.java:471)  
> at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run  
> (AbstractNioWorker.java:332)  
> at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(  
> NioWorker.java:35)  
> at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(  
> ThreadRenamingRunnable.java:102)  
> at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(  
> DeadLockProofWorker.java:42)  
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(  
> ThreadPoolExecutor.java:886)  
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.  
> java:908)  
> at java.lang.Thread.run(Thread.java:662)
> 
> Any ideas? It is running out of heap during http transport?
> 
> Why is it that elasticsearch will basically just lock up after an error  
> like this - isn't there a way to rescue from exceptions and just move on?
> 
> --Courtenay

--

---

<div class="post-metadata">

**Author:** ![bruce1](https://avatars.discourse-cdn.com/v4/letter/b/9de053/32.png) [@bruce1](https://discuss.elastic.co/u/bruce1)\
**Post date:** [October 16, 2012, 5:08pm UTC](https://discuss.elastic.co/t/out-of-memory-heap/9342/3 "2012-10-16T17:08:11Z")

</div>

Hi,  
Looks like there is a memory leak in one of the following class/method.(stream/buffer memory resource not closed)  
Please review if all the streams/buffer memory resources are closed in the following classes/methods.

org.elasticsearch.common.netty.buffer.HeapChannelBuffer.(HeapChannelBuffer.java:42)  
org.elasticsearch.common.netty.buffer.BigEndianHeapChannelBuffer. (BigEndianHeapChannelBuffer.java:34)  
org.elasticsearch.common.netty.buffer.ChannelBuffers.buffer(ChannelBuffers.java:134)  
org.elasticsearch.common.netty.buffer.HeapChannelBufferFactory.getBuffer(HeapChannelBufferFactory.java:69)  
org.elasticsearch.common.netty.buffer.CompositeChannelBuffer.copy(CompositeChannelBuffer.java:568)  
org.elasticsearch.common.netty.buffer.AbstractChannelBuffer.copy(AbstractChannelBuffer.java:522)

also try submitting java out of memory issues at [http://loasoftwares.com/servicesLink.action#loaTechnicalService](http://loasoftwares.com/servicesLink.action#loaTechnicalService)

## regards bruce

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 3:08am UTC](https://discuss.elastic.co/t/out-of-memory-heap/9342/4 "2017-07-06T03:08:28Z")

</div>


