Remove UninterruptibleLockGuards in storage code to allow interruptible lock acquisition

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Gone away
    • Priority: Major - P3
    • None
    • Affects Version/s: 3.7.3
    • Component/s: Storage
    • None
    • Storage Execution
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      Since SERVER-32638, global and database locks can be interrupted when an OperationContext is killed. This causes any LOCK_WAITING operation to throw an AssertionException with an Interrupted error code. This includes all AutoGet helpers for databases and collection.

      The following places in the storage code have temporary UninterruptibleLockGuard s to prevent crashing due to inadequate exception handling:

      src/mongo/db/catalog/drop_database.cpp:120
      src/mongo/db/catalog/drop_database.cpp:201
      src/mongo/db/catalog/drop_database.cpp:252
      src/mongo/db/repl/storage_interface_impl.cpp:401
      src/mongo/db/repl/storage_interface_impl.cpp:424
      src/mongo/db/transaction_reaper.cpp:158

            Assignee:
            [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: