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