[SERVER-51750] config.transactions cloner for resharding must not ignore records for multi-document transaction Created: 19/Oct/20 Updated: 29/Oct/23 Resolved: 06/Nov/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | 4.9.0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Max Hirschhorn | Assignee: | Jack Mulrow |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | PM-234-M3, PM-234-T-config-txn-clone | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Sprint: | Sharding 2020-11-16 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
It is possible for a retryable write to be upconverted to a multi-document transaction when a document's shard key value is being modified and would change owning shards. The resulting config.transactions record must be migrated to the recipient shard to prevent the retryable write from being re-executed as a retryable write. The retryable write is instead expected to fail with an IncompleteTransactionHistory error response. The {state: {$exists: false}} filter was removed from session_catalog_migration_source.cpp as part of |
| Comments |
| Comment by Githook User [ 06/Nov/20 ] |
|
Author: {'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}Message: |
| Comment by Max Hirschhorn [ 19/Oct/20 ] |
|
The config.transaction cloner for resharding is expected to synthesize a $sessionMigrateInfo no-op oplog entry with the special $incompleteOplogHistory marker similar to what SessionCatalogMigrationSource does. |