Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-95260

Investigate generational lock information

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Catalog and Routing

      In SERVER-90992 we discovered that the following invalid ABA scenario is right now impossible to detect:

      • Lock on collA is acquired
      • ConsistentCollection on collA is created
      • Lock is released
      • Lock is acquired again
      • ConsistentCollection is used even if it's potentially invalid

      This is because collections acquired under a lock have a guarantee they'll be consistent with the snapshot by nature of having a lock. However, if the lock is released the collection may change at any time before it's acquired again yielding the previous pointer invalid.

      This is right now impossible to detect because we can't ascertain the generation of a lock acquired, rendering any two lock acquisitions on the same target identical in nature even if they are acquired at different times. If such information were available the previous case would be trivial to detect since the second acquisition would have a different generational value from the first one.

            Assignee:
            Unassigned Unassigned
            Reporter:
            jordi.olivares-provencio@mongodb.com Jordi Olivares Provencio
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: