-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
x-pack/filebeat/input/http_endpoint: fix handling of deeply nested numeric values #40115
Merged
Conversation
This file contains 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
efd6
added
Filebeat
Filebeat
bugfix
Team:Security-Service Integrations
Security Service Integrations Team
backport-8.15
Automated backport to the 8.15 branch with mergify
labels
Jul 5, 2024
botelastic
bot
added
needs_team
Indicates that the issue/PR needs a Team:* label
and removed
needs_team
Indicates that the issue/PR needs a Team:* label
labels
Jul 5, 2024
efd6
force-pushed
the
http_endpoint_json_number
branch
3 times, most recently
from
July 5, 2024 02:54
0f63996
to
c03b7c5
Compare
Pinging @elastic/security-service-integrations (Team:Security-Service Integrations) |
…meric values In order to avoid precision loss during processing of numeric values that cannot be exactly represented in a double-precision floating point value, the json.Number unmarshaller is used. This has the effect that conversion to native types on exit from the CEL program fails since protobuf does not handle json.Number. For non-nested values that are referenced by the CEL runtime, this does not caues an issue since the native-to-value conversion will attempt to convert the string representation of the numeric value. This conversion is not recursively applied. Recursively apply the type conversion to all child values on referencing a value; converting numeric values to the most exact type and falling back to a string representation if no native numeric represetation is possible. Also add an undocumented debug function equivalent to the debug that is available in the CEL input and improve error logging.
efd6
force-pushed
the
http_endpoint_json_number
branch
from
July 5, 2024 06:35
c03b7c5
to
b9f3810
Compare
kcreddy
approved these changes
Jul 8, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
mergify bot
pushed a commit
that referenced
this pull request
Jul 8, 2024
…meric values (#40115) In order to avoid precision loss during processing of numeric values that cannot be exactly represented in a double-precision floating point value, the json.Number unmarshaller is used. This has the effect that conversion to native types on exit from the CEL program fails since protobuf does not handle json.Number. For non-nested values that are referenced by the CEL runtime, this does not caues an issue since the native-to-value conversion will attempt to convert the string representation of the numeric value. This conversion is not recursively applied. Recursively apply the type conversion to all child values on referencing a value; converting numeric values to the most exact type and falling back to a string representation if no native numeric represetation is possible. Also add an undocumented debug function equivalent to the debug that is available in the CEL input and improve error logging. (cherry picked from commit f0401c6) # Conflicts: # x-pack/filebeat/input/http_endpoint/handler.go
6 tasks
mergify bot
pushed a commit
that referenced
this pull request
Jul 8, 2024
…meric values (#40115) In order to avoid precision loss during processing of numeric values that cannot be exactly represented in a double-precision floating point value, the json.Number unmarshaller is used. This has the effect that conversion to native types on exit from the CEL program fails since protobuf does not handle json.Number. For non-nested values that are referenced by the CEL runtime, this does not caues an issue since the native-to-value conversion will attempt to convert the string representation of the numeric value. This conversion is not recursively applied. Recursively apply the type conversion to all child values on referencing a value; converting numeric values to the most exact type and falling back to a string representation if no native numeric represetation is possible. Also add an undocumented debug function equivalent to the debug that is available in the CEL input and improve error logging. (cherry picked from commit f0401c6)
6 tasks
efd6
added a commit
that referenced
this pull request
Jul 8, 2024
…meric values (#40115) (#40134) In order to avoid precision loss during processing of numeric values that cannot be exactly represented in a double-precision floating point value, the json.Number unmarshaller is used. This has the effect that conversion to native types on exit from the CEL program fails since protobuf does not handle json.Number. For non-nested values that are referenced by the CEL runtime, this does not caues an issue since the native-to-value conversion will attempt to convert the string representation of the numeric value. This conversion is not recursively applied. Recursively apply the type conversion to all child values on referencing a value; converting numeric values to the most exact type and falling back to a string representation if no native numeric represetation is possible. Also add an undocumented debug function equivalent to the debug that is available in the CEL input and improve error logging. (cherry picked from commit f0401c6) Co-authored-by: Dan Kortschak <[email protected]>
efd6
added a commit
that referenced
this pull request
Jul 8, 2024
…ling of deeply nested numeric values (#40133) * x-pack/filebeat/input/http_endpoint: fix handling of deeply nested numeric values (#40115) In order to avoid precision loss during processing of numeric values that cannot be exactly represented in a double-precision floating point value, the json.Number unmarshaller is used. This has the effect that conversion to native types on exit from the CEL program fails since protobuf does not handle json.Number. For non-nested values that are referenced by the CEL runtime, this does not caues an issue since the native-to-value conversion will attempt to convert the string representation of the numeric value. This conversion is not recursively applied. Recursively apply the type conversion to all child values on referencing a value; converting numeric values to the most exact type and falling back to a string representation if no native numeric represetation is possible. Also add an undocumented debug function equivalent to the debug that is available in the CEL input and improve error logging. (cherry picked from commit f0401c6) # Conflicts: # x-pack/filebeat/input/http_endpoint/handler.go * remove irrelevant changelog entries * resolve conflicts --------- Co-authored-by: Dan Kortschak <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
backport-8.15
Automated backport to the 8.15 branch with mergify
backport-v8.14.0
Automated backport with mergify
bugfix
Filebeat
Filebeat
Team:Security-Service Integrations
Security Service Integrations Team
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.
Proposed commit message
In order to avoid precision loss during processing of numeric values that cannot be exactly represented in a double-precision floating point value, the json.Number unmarshaller is used. This has the effect that conversion to native types on exit from the CEL program fails since protobuf does not handle json.Number. For non-nested values that are referenced by the CEL runtime, this does not cause an issue since the native-to-value conversion will attempt to convert the string representation of the numeric value. This conversion is not recursively applied.
Recursively apply the type conversion to all child values on referencing a value; converting numeric values to the most exact type and falling back to a string representation if no native numeric representation is possible.
Also add an undocumented debug function equivalent to the debug that is available in the CEL input.
Note that an alternative would be to always convert
json.Number
to string. I'm happy with that approach as well.Checklist
CHANGELOG.next.asciidoc
orCHANGELOG-developer.next.asciidoc
.Disruptive User Impact
Author's Checklist
How to test this PR locally
Related issues
Use cases
Screenshots
Logs