Skip to content

Make sure to validate the type before attempting to merge a new mapping.#45157

Merged
jtibshirani merged 5 commits intoelastic:masterfrom
jtibshirani:mapping-merge-error
Aug 12, 2019
Merged

Make sure to validate the type before attempting to merge a new mapping.#45157
jtibshirani merged 5 commits intoelastic:masterfrom
jtibshirani:mapping-merge-error

Conversation

@jtibshirani
Copy link
Contributor

@jtibshirani jtibshirani commented Aug 2, 2019

Currently, when adding a new mapping, we attempt to parse + merge it before
checking whether its top-level document type matches the existing type. So when
a user attempts to introduce a new mapping type, we may give a confusing error
message around merging instead of complaining that it's not possible to add
more than one type ("Rejecting mapping update to [my-index] as the final
mapping would have more than 1 type...").

This PR moves the type validation to the start of
MetaDataMappingService#applyRequest so that we make sure the type matches
before performing any mapper merging.

We already partially addressed this issue in #29316, but the tests there
focused on MapperService and did not catch this problem with end-to-end
mapping updates.

Addresses #43012.

@jtibshirani jtibshirani added >bug :Search Foundations/Mapping Index mappings, including merging and defining field types labels Aug 2, 2019
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-search

@jtibshirani jtibshirani changed the title Make sure to validate the type before parsing a new mapping. Make sure to validate the type before attempting to merge a new mapping. Aug 2, 2019
@jtibshirani jtibshirani force-pushed the mapping-merge-error branch from 4c6c09f to e637ea8 Compare August 2, 2019 22:09
@jtibshirani jtibshirani force-pushed the mapping-merge-error branch from e637ea8 to 40f319f Compare August 2, 2019 22:41
@jtibshirani
Copy link
Contributor Author

@elasticmachine run elasticsearch-ci/2

@mayya-sharipova mayya-sharipova self-requested a review August 6, 2019 19:11
Copy link
Contributor

@mayya-sharipova mayya-sharipova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @jtibshirani, makes sense

@jtibshirani
Copy link
Contributor Author

Thanks for the review @mayya-sharipova !

@jtibshirani
Copy link
Contributor Author

@elasticmachine run elasticsearch-ci/1

@jtibshirani jtibshirani merged commit abb30f0 into elastic:master Aug 12, 2019
@jtibshirani jtibshirani deleted the mapping-merge-error branch August 12, 2019 21:10
jtibshirani added a commit that referenced this pull request Aug 12, 2019
…ng. (#45157)

Currently, when adding a new mapping, we attempt to parse + merge it before
checking whether its top-level document type matches the existing type. So when
a user attempts to introduce a new mapping type, we may give a confusing error
message around merging instead of complaining that it's not possible to add
more than one type ("Rejecting mapping update to [my-index] as the final
mapping would have more than 1 type...").

This PR moves the type validation to the start of
`MetaDataMappingService#applyRequest` so that we make sure the type matches
before performing any mapper merging.

We already partially addressed this issue in #29316, but the tests there
focused on `MapperService` and did not catch this problem with end-to-end
mapping updates.

Addresses #43012.
jtibshirani added a commit that referenced this pull request Aug 12, 2019
…ng. (#45157)

Currently, when adding a new mapping, we attempt to parse + merge it before
checking whether its top-level document type matches the existing type. So when
a user attempts to introduce a new mapping type, we may give a confusing error
message around merging instead of complaining that it's not possible to add
more than one type ("Rejecting mapping update to [my-index] as the final
mapping would have more than 1 type...").

This PR moves the type validation to the start of
`MetaDataMappingService#applyRequest` so that we make sure the type matches
before performing any mapper merging.

We already partially addressed this issue in #29316, but the tests there
focused on `MapperService` and did not catch this problem with end-to-end
mapping updates.

Addresses #43012.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

>bug :Search Foundations/Mapping Index mappings, including merging and defining field types v7.3.1 v7.4.0 v8.0.0-alpha1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants