-
Type:
Spec Change
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Component/s: Bulk API
-
None
-
Needed
Summary
The "Top-Level Errors" section of the client bulk write spec is ambiguous about whether individual results already retrieved from the current cursor (before a getMore fails) must be included in BulkWriteException.partialResult.
The current wording "individual results and/or errors have already been observed" could be interpreted as covering only results from previously completed batches, not documents already read from the failing cursor. This ambiguity caused a bug in the Java driver where those partial cursor results were discarded.
Go and C/C++ drivers preserve partial cursor results correctly.
Motivation
Who is the affected end user?
Driver authors implementing MongoClient.bulkWrite.
Is this issue urgent?
No.
Is this ticket only for tests?
No — spec text clarification.
Acceptance Criteria
PR merged: https://github.com/mongodb/specifications/pull/1947
- related to
-
JAVA-6226 ClientBulkWriteOperation should not discard observed cursor results if exhausting it fails with a top-level error
-
- Backlog
-
- split to
-
CDRIVER-6350 Clarify that partial cursor results must be preserved in BulkWriteException when a top-level error occurs during getMore
-
- Blocked
-
-
CSHARP-6072 Clarify that partial cursor results must be preserved in BulkWriteException when a top-level error occurs during getMore
-
- Blocked
-
-
CXX-3513 Clarify that partial cursor results must be preserved in BulkWriteException when a top-level error occurs during getMore
-
- Blocked
-
-
GODRIVER-3945 Clarify that partial cursor results must be preserved in BulkWriteException when a top-level error occurs during getMore
-
- Blocked
-
-
JAVA-6232 Clarify that partial cursor results must be preserved in BulkWriteException when a top-level error occurs during getMore
-
- Blocked
-
-
NODE-7605 Clarify that partial cursor results must be preserved in BulkWriteException when a top-level error occurs during getMore
-
- Blocked
-
-
PHPLIB-1865 Clarify that partial cursor results must be preserved in BulkWriteException when a top-level error occurs during getMore
-
- Blocked
-
-
PYTHON-5866 Clarify that partial cursor results must be preserved in BulkWriteException when a top-level error occurs during getMore
-
- Blocked
-
-
RUBY-3896 Clarify that partial cursor results must be preserved in BulkWriteException when a top-level error occurs during getMore
-
- Blocked
-
-
RUST-2442 Clarify that partial cursor results must be preserved in BulkWriteException when a top-level error occurs during getMore
-
- Blocked
-