Remove UninterruptibleLockGuards in query code to allow interruptible lock acquisition

XMLWordPrintableJSON

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

      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 - Query Team (Inactive)
            Reporter:
            Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated:
              Resolved: