Closed
Description
Elasticsearch version: 5.2.1 docker image, 5.1.2 docker image, 5.0.1 RPM package
Plugins installed: []
JVM version: Oracle Corporation/OpenJDK 64-Bit Server VM/1.8.0_121/25.121-b13
OS version: Linux/4.3.0-1.el6.elrepo.x86_64/amd64
Description of the problem including expected versus actual behavior:
I am able to reproduce the issue presented in #15997 with Elasticsearch 5.2.1,
5.1.2 docker images, and another 5.0.1 RPM package.
Specifically:
PUT t
{
"mappings": {
"parent": {},
"child": {
"_parent": {
"type": "parent"
}
}
}
}
PUT t/_mapping/child
{
"properties": {}
}
results in illegal_argument_exception
.
Again, providing _parent
type definition in update request body worked
around the issue.
Provide logs (if relevant):
[2017-02-27T19:51:08,706][DEBUG][o.e.a.a.i.m.p.TransportPutMappingAction] [default] failed to put mappings on indices [[[t/AK3xoZCBSCK1Wj6N81GGlA]]], type [child]
java.lang.IllegalArgumentException: The _parent field's type option can't be changed: [parent]->[null]
at org.elasticsearch.index.mapper.ParentFieldMapper.doMerge(ParentFieldMapper.java:301) ~[elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.index.mapper.FieldMapper.merge(FieldMapper.java:333) ~[elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.index.mapper.MetadataFieldMapper.merge(MetadataFieldMapper.java:73) ~[elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.index.mapper.Mapping.merge(Mapping.java:96) ~[elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.index.mapper.DocumentMapper.merge(DocumentMapper.java:333) ~[elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.applyRequest(MetaDataMappingService.java:267) ~[elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.cluster.metadata.MetaDataMappingService$PutMappingExecutor.execute(MetaDataMappingService.java:230) ~[elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.cluster.service.ClusterService.executeTasks(ClusterService.java:674) ~[elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.cluster.service.ClusterService.calculateTaskOutputs(ClusterService.java:653) ~[elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.cluster.service.ClusterService.runTasks(ClusterService.java:612) [elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.cluster.service.ClusterService$UpdateTask.run(ClusterService.java:1112) [elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:527) [elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:238) [elasticsearch-5.2.1.jar:5.2.1]
at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:201) [elasticsearch-5.2.1.jar:5.2.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_121]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]