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

RocksStorage: deadlock when dropping database with indexes

    • 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.

      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.

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

              Created:
              Updated:
              Resolved: