Details
-
Bug
-
Resolution: Won't Fix
-
Major - P3
-
None
-
3.2.10
-
None
-
Sharding
-
ALL
-
Sharding 2016-11-21, Sharding 2016-12-12, Sharding 2017-01-02
-
0
Description
Here's the hypothetical scenario:
1. Thread 1 sees that the lock document does not exist and tries to create it.
C1: unlocked, owned by nobody
C2: -
C3: -
2. Thread 2 comes in and sees on the first config the the lock is in unlocked state and tries to grab it by sending updates to 3 config servers.
3. However, since the update is upsert: false, it will only succeed in updating the first one.
C1: locked, owned by thread 2
C2: -
C3: -
4. Since thread 2 failed to update to all 3 config servers, it will enter the tournament round which will then fail immediately because the lock document does not exist on the other config servers.