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

Compact Calls to WiredTiger take multiple overlapping WT_SESSION objects

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: 3.5.7
    • Fix Version/s: 3.4.6, 3.5.7
    • Component/s: Storage, WiredTiger
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v3.4
    • Steps To Reproduce:
      Hide

      Instrument code to show all session take/return calls.
      Run a compact.
      Track when each session is taken vs returned.

      Show
      Instrument code to show all session take/return calls. Run a compact. Track when each session is taken vs returned.
    • Sprint:
      Storage 2017-05-08, Storage 2017-05-29
    • Linked BF Score:
      0

      Description

      We have seen build failures with a stuck cache when running the FSM suite and compact tasks are in flight.

      Diving into the issue, it appears that the compact operation runs over multiple WT_SESSION objects. A first session, with an "empty" transaction is opened when the command is in the early stages, then subsequent sessions are taken from the session cache to run compact on the record store and each index.

      This can cause problems in testing due to there being a single transaction running for the length of all the compact operations.

      There may also be scope here for a more full review of places in the WiredTiger KV Engine that we can go through and find locations that also exhibit this behaviour of opening sessions with transactions that are never used or taking sessions directly from the session cache.

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: