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

Remove UninterruptibleLockGuards in query code to allow interruptible lock acquisition

    • Type: Icon: Improvement Improvement
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 3.7.3
    • Component/s: Querying
    • None
    • Query

      Since SERVER-32638, global and database locks can be interrupted when an OperationContext is killed and throw a DBException with an Interrupted error code. This includes all AutoGet helpers.

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

      src/mongo/db/commands/mr.cpp:368
      src/mongo/db/commands/mr.cpp:1017
      src/mongo/db/commands/mr.cpp:1405
      src/mongo/db/commands/mr.cpp:1739
      src/mongo/db/pipeline/document_source_cursor.cpp:268
      src/mongo/db/query/find.cpp:265
      src/mongo/db/query/query_yield.cpp:86
      src/mongo/db/ttl.cpp:137

            Assignee:
            backlog-server-query Backlog - Query Team (Inactive)
            Reporter:
            louis.williams@mongodb.com Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated:
              Resolved: