ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: 8.0.0
    • Component/s: None
    • None
    • Catalog and Routing
    • 2
    • 馃煢 Shard Catalog
    • None
    • None
    • None
    • None
    • None
    • None

      [v8.0 only]

      聽

      Summary

      There is a window of time while we commit the drop of a collection to WiredTiger where we expose the collection without any indexes (neither user created indexes nor the required _id index) to concurrent readers. This is inconsistent with drop being atomic (should always expose either the collection with indexes, or nothing).

      聽

      The impact is that concurrent readers may see a Collection instance without indexes, so:

      • They may fail, crash, or otherwise act incorrectly as they expect the _id index to be present (SERVER-130823's tassert is likely caused by this).
      • They may decide to run some expensive query plan, e.g. COLLSCAN, since they do not see the previously existing indexes yet they can see the collection's documents.

      聽

      Technical detail

      This happens as follows:

      聽

      A reproducer is attached.

      聽

      Proposed fix

      establishConsistentCollection should not return the instance in _dropPendingCollection since it's not consistent and doesn't correspond to any persisted durable catalog state.

      聽

      Affected versions

      The affected code doesn't exist in v7.0.

      In v8.3+, the affected code was removed by SERVER-107956.

      Therefore v8.0 is the only supported affected version.

            Assignee:
            Unassigned
            Reporter:
            Joan Bruguera Mic贸
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: