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

Avoid caching the cursor and session in WiredTigerSizeStorer

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 5.2.0, 5.0.6, 4.4.16, 4.2.22
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Fully Compatible
    • v5.0, v4.4, v4.2
    • Execution Team 2021-11-15

      Note: this ticket fixes the bug described in SERVER-67514.

      Original description:
      SERVER-58311 discovered that mongod calls into WiredTiger Rollback To Stable (RTS) while holding the sizeStorer.wt dhandle. This is not expected as WiredTiger usually requires RTS to have exclusive access to a dhandle. This is observed when building the server with these non-default flags.

      E  STORAGE  22435   [BackgroundSync] "WiredTiger error","attr":{"error":16,"message":"[1625743985:510865][6205:0x7f6a41a84700], file:sizeStorer.wt, txn rollback_to_stable: __rollback_to_stable_btree_apply, 1522: file:sizeStorer.wt: unable to open handle, error indicates handle is unavailable due to concurrent use: Device or resource busy"}

      Add a pause/resume API to WiredTigerSizeStorer. Pause the WiredTigerSizeStorer after syncing the sizeInfo and resume it after completing the RTS.

            gregory.wlodarek@mongodb.com Gregory Wlodarek
            josef.ahmad@mongodb.com Josef Ahmad
            0 Vote for this issue
            8 Start watching this issue