Force UTF-8 encoding on task results #17252
Merged
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.
Since task results are stored as binary blobs, they can be set as
strings in whatever encoding you like. This can create problems for
the API, which blindly tries to convert all attributes to JSON - any
value containing ASCII with ansi escape codes will fail with a
conversion error.
It seems reasonable to expect that all string values should be encoded
as UTF-8 - the alternative is for the API to have to force the
encoding on every single string that comes its way.
This change forces incoming values to be converted to UTF-8 prior to
being stored. It will also convert outgoing values in the case that
they have already been persisted prior to this change - though this
extra check I'm sure could eventually be removed.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1557731