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

serverStatus blocks waiting for various locks

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 2.4.0-rc0
    • Component/s: Admin
    • None
    • Storage Execution
    • ALL

      Here is a quick analysis of the locks hanging off serverStatus:

      • recordStats requires a read lock (Client::ReadContext) for each db
      • locks requires "DBLocksMap::ref r(dblocks);" (not write lock related)
      • cursors requires client cursor lock
      • network requires local lock for network counters
      • repl requires lock on "ReplSetImpl"
        • master/slave: local db, and possibly queries all replication sources (other server oplog entries – first/last entry).

      The biggest issue is the recordStats since that requires a read lock for each db.

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            scotthernandez Scott Hernandez (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: