-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
Sharding NYC 2022-03-21
The SessionCatalogMigrationSource currently returns a dead-end sentinel noop oplog entry for every transaction involving the collection being migrated. For an internal transaction for non-retryable writes, this oplog entry is expected to cause the migration to hit this invariant inside checkStatementExecuted since retryable writes are not allowed inside an internal session for non-retryable writes. This issue will be handled in SERVER-64331. For now, the SessionCatalogMigrationSource should ignore internal transactions for non-retryable writes, just like what ReshardingOplogSessionApplication does in SERVER-63441.
Similarly, the SessionCatalogMigrationSource should also ignore internal transactions for retryable writes that are aborted or still in progress/prepare at the start of cloning since there is no write history to transfer (at this point). If any of the transactions commits during the migration, it will be handled through the transfer mod session migration queue (in SERVER-63494).
- is depended on by
-
SERVER-63494 Transfer history for retryable transactions with more than one oplog entry across migrations
- Closed