-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Cluster Scalability
-
Fully Compatible
-
ALL
-
v8.0, v7.0, v6.0
-
Cluster Scalability 2024-08-19, Cluster Scalability 2024-09-02
-
200
If a non-retryable write is executed using the same opCtx as a retryable write/txn, the txnNumber and lsid will still be set on the opCtx. When the migration chunk cloner decides which oplog entries need to have their session info migrated, it doesn't have access to the full oplog entry (only the opTime), but does have access to the opCtx - it uses the presence of a txnNumber on the opCtx to decide, and so it's possible for the session migration cloner to read the attempt to transfer session info for a non-retryable write. The session migration cloner reads the oplog using the opTime it's passed, assumes the oplog entry will have session info, and always attempts to extract the session info which can cause a crash. The session migration cloner can just ignore the oplog entry if it doesn't have session info.