Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-1698

Reconfiguring eviction opens a race with WT_CONNECTION::close

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.9.2
    • Labels:
    • Sprint:
      Storage 2017-03-27, Storage 2017-04-17

      Description

      After the eviction.threads_max setting is increased, the eviction server may resize its array of worker contexts and allocate more sessions. This happens asynchronously in the eviction server thread because it owns the eviction worker contexts.

      The problem with this is that we assert when opening a session that we are not in the process of closing the connection. This has been the source of a number of bugs in the past where internal threads can race with connection close if the connection is only open for a short period.

      One possible fix would be to set a flag when the reconfigure happens and have the eviction server clear the flag once it has processed the setting change. WT_CONNECTION::close would have to wait for the flag to be cleared before we start asserting that no new sessions can be opened.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                keith.bostic Keith Bostic
                Reporter:
                michael.cahill Michael Cahill
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: