When you connect to a port using curl, curl sends HTTP requests that looks
like this:
POST /my-index/my-type/1 HTTP/1.1
User-Agent: curl/7.22.0 (x86_64-apple-darwin1......
When Netty connector of elasticsearch that listens on port 9300 receives a
request, it expects that the first 4 bytes of the request will contain the
length of data frame that is about to follow.
So, the first 4 bytes that curl sends are 'P', 'O', 'S', 'T' or 0x50, 0x4F,
0x53, 0x54. Netty treats these 4 bytes as a big endian
integer 1,347,375,956 and figures out that it should expect
approximately 1.2gb of data to follow. It then compares it to 90% of the
max heap size, which is 914.1m if elasticsearch was started with default
1GB of memory, figures that there is no way it can handle such a big
request and bails out by throwing TooLongFrameException.
Igor
On Thursday, August 2, 2012 11:36:54 AM UTC-4, Vinicius Carvalho wrote:
Out of curiosity, I had this error other day when I hit the wrong port
using curl, I've freaked out for a few seconds, and then realized I hit the
wrong port.
May I ask where does numbers come? 1.2gb exceed 914.1? Cuz I had the same
doing a simple query on an index in a wrong port
Regards
On Thursday, August 2, 2012 9:10:35 AM UTC-4, Bernd Fehling wrote:
Well, after having ES installed and set up 2 nodes on one machine for
testing I tried to get some content into ES.
The results are very bad. After 2 days not a single useful doc with an
acceptable mapping.
Best I could get was:
org.elasticsearch.common.netty.handler.codec.frame.TooLongFrameException:
transport content length received [1.2gb] exceeded [914.1mb]
at
org.elasticsearch.transport.netty.MessageChannelHandler.callDecode(MessageChannelHandler.java:143)
at
org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:103)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:563)
...
I don't know how ES comes to 1.2gb or even 914.1mb, because I only tried
to load about 68mb (112 files) with fsriver.
My current idea is that ES devides my 68mb by its version number 0.198
but this would make 343mb. (You see I havent't lost my humor...)
Is there ANY useful example somewhere, which really explains step by step
how to start with index, mapping, loading, ...
Bernd