1. Shard receives _getNextSessionMods command.
2. Command tries to query oplog and hits a WriteConflictException
3. QueryYield::yieldAllLocks is called, but it returns early because it's using DBDirectClient so it does not throw away the snapshot (Note: First global lock is taken by AutoGetActiveCloner).
4. Query loop retries, but since it never resets the state during yield, it gets a WCE again, so step#2 is repeated.