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

FTDC collection blocked on locked backupCursor state read

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.1.0-rc0, 8.0.4
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Engines
    • Fully Compatible
    • v8.0, v7.3, v7.0, v6.0, v5.0
    • 2024-08-06 - Withholding Tax
    • 5

      Taking this lock to check the state of the backupCursor has the unintentional side effect of blocking in flight serverStatus commands which creates gaps in FTDC data.

      I have written a reproducer that deterministically reproduces a 10 second gap in the FTDC cursor waiting on this mutex.

      I propose that instead of a lock we read it with an atomic using whatever the standard memory order is.

      This mutex was added in SERVER-37662 which added backupCursor status to FTDC data. A second commit to that ticket reads: "Fix concurrency for backupCursor state read." originally a data race existed and the lock fixed it.

            Assignee:
            luke.pearson@mongodb.com Luke Pearson
            Reporter:
            luke.pearson@mongodb.com Luke Pearson
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: