Details
-
Bug
-
Resolution: Fixed
-
Major - P3
-
6.2.0-rc0
-
None
-
None
-
Fully Compatible
-
ALL
Description
ServiceEntryPointImpl::Sessions contains a SyncToken which is used to safely access Sessions::ByClientMap. ServiceEntryPointImpl::startSession races with other functions that modify the map:
- startSession creates a Sessions::iterator.
- A code block is started and a SyncToken is created (and therefore _sessions is locked).
- A SessionWorkflow is created and inserted, and the iterator is set.
- The code block ends, the SyncToken is destroyed, and _sessions is unlocked.
- The workflow is started by retrieving from SessionWorkflow from the iterator.
If an operation occurs on _sessions between steps 4. and 5., then the iterator may be invalidated.
Attachments
Issue Links
- is depended on by
-
SERVER-67829 Benchmark for ServiceStateMachine
-
- Closed
-