Skip to content

Need to respecify _parent when updating mapping of child type #23381

Closed
@Naitreey

Description

@Naitreey

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]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions