2 bulk requests one doing update, one doing insert, behave incosistently:
tony@w530 ~ $ cat bulk-index.txt
{ "index" : { "_index": "test-index", "_type": "test-type", "_id": "1"} }
{ "foo": "b\ar" }
{ "index" : { "_index": "test-index", "_type": "test-type", "_id": "1"} }
{ "foo": "bar" }
tony@w530 ~ $ cat bulk-update.txt
{ "update" : { "_index": "test-index", "_type": "test-type", "_id": "1"} }
{ "doc": { "foo": "b\ar" }}
{ "update" : { "_index": "test-index", "_type": "test-type", "_id": "1"} }
{ "doc": { "foo": "bar" }}
tony@w530 ~ $ curl -s -XPOST localhost:9200/_bulk?pretty --data-binary @bulk-index.txt
{
"took" : 6,
"errors" : true,
"items" : [ {
"index" : {
"_index" : "test-index",
"_type" : "test-type",
"_id" : "1",
"status" : 400,
"error" : "MapperParsingException[failed to parse [foo]]; nested: JsonParseException[Unrecognized character escape 'a' (code 97)\n at [Source: [B@5ae957f1; line: 1, column: 14]]; "
}
}, {
"index" : {
"_index" : "test-index",
"_type" : "test-type",
"_id" : "1",
"_version" : 4,
"status" : 200
}
} ]
}
In logs:
[2015-01-21 17:40:04,708][DEBUG][action.bulk ] [nodeD2] [test-index][2] failed to execute bulk item (index) index {[test-index][test-type][1], source[{ "foo": "b\ar" }^M]}
org.elasticsearch.index.mapper.MapperParsingException: failed to parse [foo]
at org.elasticsearch.index.mapper.core.AbstractFieldMapper.parse(AbstractFieldMapper.java:415)
at org.elasticsearch.index.mapper.object.ObjectMapper.serializeValue(ObjectMapper.java:707)
at org.elasticsearch.index.mapper.object.ObjectMapper.parse(ObjectMapper.java:500)
at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:541)
at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:490)
at org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(InternalIndexShard.java:413)
at org.elasticsearch.action.bulk.TransportShardBulkAction.shardIndexOperation(TransportShardBulkAction.java:435)
at org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:150)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction.performOnPrimary(TransportShardReplicationOperationAction.java:511)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction$1.run(TransportShardReplicationOperationAction.java:419)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.elasticsearch.common.jackson.core.JsonParseException: Unrecognized character escape 'a' (code 97)
at [Source: [B@5bcacee; line: 1, column: 14]
at org.elasticsearch.common.jackson.core.JsonParser._constructError(JsonParser.java:1419)
at org.elasticsearch.common.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:508)
at org.elasticsearch.common.jackson.core.base.ParserMinimalBase._handleUnrecognizedCharacterEscape(ParserMinimalBase.java:485)
at org.elasticsearch.common.jackson.core.json.UTF8StreamJsonParser._decodeEscaped(UTF8StreamJsonParser.java:2924)
at org.elasticsearch.common.jackson.core.json.UTF8StreamJsonParser._finishString2(UTF8StreamJsonParser.java:2209)
at org.elasticsearch.common.jackson.core.json.UTF8StreamJsonParser._finishString(UTF8StreamJsonParser.java:2165)
at org.elasticsearch.common.jackson.core.json.UTF8StreamJsonParser.getText(UTF8StreamJsonParser.java:279)
at org.elasticsearch.common.xcontent.json.JsonXContentParser.text(JsonXContentParser.java:86)
at org.elasticsearch.common.xcontent.support.AbstractXContentParser.textOrNull(AbstractXContentParser.java:194)
at org.elasticsearch.index.mapper.core.StringFieldMapper.parseCreateFieldForString(StringFieldMapper.java:337)
at org.elasticsearch.index.mapper.core.StringFieldMapper.parseCreateField(StringFieldMapper.java:277)
at org.elasticsearch.index.mapper.core.AbstractFieldMapper.parse(AbstractFieldMapper.java:405)
... 12 more
curl -s -XPOST localhost:9200/_bulk?pretty --data-binary @bulk-update.txt
{
"error" : "JsonParseException[Unrecognized character escape 'a' (code 97)\n at [Source: [B@cb1ae5d; line: 1, column: 24]]",
"status" : 500
}
No exception printed in logs