Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Govern thread creation by queue length instead of dry signals #2942

Merged
merged 3 commits into from
Nov 18, 2019

Commits on Nov 13, 2019

  1. Govern thread creation by queue length instead of dry signals

    When getidleworker signals the pool herder to spawn a thread, it increases
    the dry counter, and the herder resets dry again when spawning a single
    thread. This will in many cases only create a single thread even though
    the herder was signaled dry multiple times, and may cause a situation
    where the cache acceptor is queued and no new thread is created. Together
    with long lasting tasks (ie endless pipelines), and all other tasks having
    higher priority, this will prevent the cache acceptor from being
    rescheduled.
    
    c00096.vtc demonstrates how this can lock up.
    
    To fix this, spawn threads if we have queued tasks and we are below the
    thread maximum level.
    mbgrydeland committed Nov 13, 2019
    Configuration menu
    Copy the full SHA
    37c8154 View commit details
    Browse the repository at this point in the history
  2. Fix a small memory leak

    Fix a small memory leak when failing to spawn a new thread.
    mbgrydeland committed Nov 13, 2019
    Configuration menu
    Copy the full SHA
    751404a View commit details
    Browse the repository at this point in the history
  3. SQUASHME: c96 stabilization

    dridi authored and mbgrydeland committed Nov 13, 2019
    Configuration menu
    Copy the full SHA
    51a2f89 View commit details
    Browse the repository at this point in the history