RUST-886 Use lossy UTF-8 decoding for responses to insert and update commands #601
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.
These changes work around a somewhat commonly encountered issue in the server where long error messages containing multi-byte characters are truncated incorrectly such that they are no longer valid UTF-8.
From digging through all of the related tickets for the server and drivers, this only ever seems to be observed in duplicate key errors, which I believe can only result from
insert
andupdate
commands, so I've limited this PR to those two operations. It seems possible it could come up elsewhere, but I figured we could start with this and expand our usage of the lossy decoding later if the need arises.Before my changes, all of the errors below, which are now duplicate key errors, would instead be something like