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

collection metadata for multikey not removed after WriteConflictException from durable catalog update

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 5.0.0-rc5, 5.1.0-rc0
    • Storage
    • None
    • Fully Compatible
    • ALL
    • v5.0
    • Execution Team 2021-06-28
    • 127

    Description

      The collection metadata in CollectionImpl tracks both the uncommitted changes in memory and the persisted state in DurableCatalog. The IndexCatalogEntry updates the collection metadata for multikey by calling CollectionImpl::setIndexIsMultikey(). All updates on the collection metadata has to be done in a storage transaction (WriteUnitOfWork) with cleanup handlers to clear the uncommitted state if the transaction is aborted. If a WriteConflictException is thrown from DurableCatalog::putMetaData() before the rollback handler to remove the uncommitted multikey state is installed, we may end up with a collection metadata state where subsequent writers may observe uncommitted multikey information that should have been discarded.

      Attachments

        Issue Links

          Activity

            People

              benety.goh@mongodb.com Benety Goh
              benety.goh@mongodb.com Benety Goh
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: