Fix NPE on FieldStats with mixed cluster on version pre/post 5.2#22688
Merged
jimczi merged 2 commits intoelastic:masterfrom Jan 19, 2017
jimczi:field_stats_bwc
Merged
Fix NPE on FieldStats with mixed cluster on version pre/post 5.2#22688jimczi merged 2 commits intoelastic:masterfrom jimczi:field_stats_bwc
jimczi merged 2 commits intoelastic:masterfrom
jimczi:field_stats_bwc
Conversation
In 5.2 the FieldStats API can return null min/max values. These values cannot be deserialized by a node with version pre 5.2 so if this node is pick to coordinate a FieldStats request in a mixed cluster an NPE can be thrown. This change prevents the NPE by removing the non serializable FieldStats object directly in the field stats shard request. The filtered fields will not be present in the response when a node pre 5.2 acts as a coordinating node.
s1monw
approved these changes
Jan 19, 2017
Contributor
s1monw
left a comment
There was a problem hiding this comment.
LGTM I left one question / suggestion
| } | ||
| } else { | ||
| if (hasMinMax == false) { | ||
| throw new IllegalArgumentException("cannot serialize null min/max fieldstats in a mixed-cluster " + |
Contributor
There was a problem hiding this comment.
this only happens if we mess something up right? I wonder if we should make it an assertion instead?
Contributor
Author
There was a problem hiding this comment.
Yes if it happens it's a bug, I'll make it an assertion
Contributor
Author
|
Thansk @s1monw. Now merging to the 5.x and 5.2 |
jimczi
added a commit
that referenced
this pull request
Jan 19, 2017
) * Fix NPE on FieldStats with mixed cluster on version pre/post 5.2 In 5.2 the FieldStats API can return null min/max values. These values cannot be deserialized by a node with version pre 5.2 so if this node is pick to coordinate a FieldStats request in a mixed cluster an NPE can be thrown. This change prevents the NPE by removing the non serializable FieldStats object directly in the field stats shard request. The filtered fields will not be present in the response when a node pre 5.2 acts as a coordinating node.
jimczi
added a commit
that referenced
this pull request
Jan 19, 2017
) * Fix NPE on FieldStats with mixed cluster on version pre/post 5.2 In 5.2 the FieldStats API can return null min/max values. These values cannot be deserialized by a node with version pre 5.2 so if this node is pick to coordinate a FieldStats request in a mixed cluster an NPE can be thrown. This change prevents the NPE by removing the non serializable FieldStats object directly in the field stats shard request. The filtered fields will not be present in the response when a node pre 5.2 acts as a coordinating node.
jasontedor
added a commit
to jasontedor/elasticsearch
that referenced
this pull request
Jan 20, 2017
* master: (117 commits) Add missing serialization BWC for disk usage estimates Expose disk usage estimates in nodes stats S3 repository: Deprecate specifying credentials through env vars, sys props, and remove profile files (elastic#22567) Fix Eclipse project generation Fix deprecation logging for lenient booleans Remove @Header we no longer need Make lexer abstract [Docs] Remove outdated info about enabling/disabling doc_values (elastic#22694) Move lexer hacks to EnhancedPainlessLexer Fix incorrect args order passed to createAggregator Improve painless's javadocs Add TestWithDependenciesPlugin to build (elastic#22646) Add parsing from xContent to SearchProfileShardResults and nested classes (elastic#22649) Add unit tests for FiltersAggregator (elastic#22678) Don't register search response listener in transport clients unmute FieldStatsIntegrationIT.testGeoPointNotIndexed, fix already pushed Mute FieldStatsIntegrationIT.testGeoPointNotIndexed, for now Painless: Add augmentation to string for base 64 (elastic#22665) Fix NPE on FieldStats with mixed cluster on version pre/post 5.2 (elastic#22688) Add parsing methods for UpdateResponse (elastic#22586) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In 5.2 the FieldStats API can return null min/max values.
These values cannot be deserialized by a node with version pre 5.2 so if this node
is pick to coordinate a FieldStats request in a mixed cluster an NPE can be thrown.
This change prevents the NPE by removing the non serializable FieldStats object directly in the field stats shard request.
The filtered fields will not be present in the response when a node pre 5.2 acts as a coordinating node.