Add RetryableWriteError to write concern error in bulk writes. #1880
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.
This PR fixes a label-loss in bulk write error handling. When a bulk write returns
ok: 1with a retryablewriteConcernError, the driver may decide to attach theRetryableWriteErrorlabel, but the label was being added to thewriteConcernErrorsubdocument.MongoBulkWriteExceptionparsing reads labels from the top-levelerrorLabelsarray, so labels attached underwriteConcernErrorwere not added to the thrownMongoBulkWriteException.Change
Attach
RetryableWriteErrorinto the top-level result["errorLabels"]for the relevant write concern error path (instead of result["writeConcernError"]).Keep behavior consistent with server-originated labels (raw result is not exposed to users; labels are processed via existing parsing).
Tests
Re-enabled unified test (now passing).
JAVA-6087