[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:
Related
is related to SERVER-38844 SessionMigrationSource should explici... Closed
is related to SERVER-40475 Migrate info that retryable write has... Closed
is related to SERVER-49899 Create config.transactions cloner for... Closed
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 SERVER-40475 after being added by SERVER-38844. It should be similarly removed from createConfigTxnCloningPipelineForResharding().



 Comments   
Comment by Githook User [ 06/Nov/20 ]

Author:

{'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}

Message: SERVER-51750 config.transactions cloner for resharding must not ignore records for multi-document transactions
Branch: master
https://github.com/mongodb/mongo/commit/07a6a59a0355ae15b19fa512bcafe64dce1148e0

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.

Generated at Thu Feb 08 05:26:19 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.