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

RocksStorage: deadlock when dropping database with indexes

    XMLWordPrintable

    Details

    • Operating System:
      ALL
    • Steps To Reproduce:
      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

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

                Dates

                Created:
                Updated:
                Resolved: