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

RocksStorage: deadlock when dropping database with indexes

    XMLWordPrintable

Details

    • ALL
    • Hide

      run unit test jstests/core/dbcase.js with RocksDB experiment engine.

      Show
      run unit test jstests/core/dbcase.js with RocksDB experiment engine.

    Description

      I saw rocks storage deadlock when trying to acquire RocksEngine::_entryMapMutex twice. Here is the call stack
      ...
      #7 mongo::RocksEngine::getIndexColumnFamily at src/mongo/db/storage/rocks/rocks_engine.cpp:224
      #8 mongo::RocksCollectionCatalogEntry::removeIndex at src/mongo/db/storage/rocks/rocks_collection_catalog_entry.cpp:121
      #9 mongo::RocksEngine::_dropCollection_inlock at src/mongo/db/storage/rocks/rocks_engine.cpp:348
      #10 mongo::RocksEngine::dropDatabase at src/mongo/db/storage/rocks/rocks_engine.cpp:188
      ...
      In dropDatabase(), _entryMapMutex is already acquired but in getIndexColumnFamily() it tries to acquire _entryMapMutex agin.

      Attachments

        Issue Links

          Activity

            People

              kaloian.manassiev@mongodb.com Kaloian Manassiev
              sdong Siying Dong
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: