-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
Cluster Scalability 2023-11-27
After PM-635, a mongod can have both shard role and router role. For a mongod acting as a router for some transaction that performs an insert against some non-existing database, the implicit database creation can hang if the mongod is also the configsvr primary and shardsvr primary for some shard.
- While executing the cluster insert, the mongod acting as a router checks out the session for the transaction. It later finds out that it needs to implicitly create the database so it runs _configsvrCreateDatabase against the config primary (which is itself).
- While executing _configsvrCreateDatabase, the mongod tries to check out the session but couldn't because the session was checked out by the opCtx for the insert command from step 1.
The proposal here is to make ShardRemote to yield the session here and unyield the session here just like what we made the AsyncRequestSender do.
- is depended on by
-
SERVER-81968 Make mongod dispatch commands through router code paths if applicable
- Closed