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

consul: fix deadlock in check-based restarts #5975

Merged
merged 3 commits into from
Jul 18, 2019

Commits on Jul 17, 2019

  1. consul: fix deadlock in check-based restarts

    Fixes #5395
    Alternative to #5957
    
    Make task restarting asynchronous when handling check-based restarts.
    This matches the pre-0.9 behavior where TaskRunner.Restart was an
    asynchronous signal. The check-based restarting code was not designed
    to handle blocking in TaskRunner.Restart. 0.9 made it reentrant and
    could easily overwhelm the buffered update chan and deadlock.
    
    Many thanks to @byronwolfman for his excellent debugging, PR, and
    reproducer!
    
    I created this alternative as changing the functionality of
    TaskRunner.Restart has a much larger impact. This approach reverts to
    old known-good behavior and minimizes the number of places changes are
    made.
    schmichael committed Jul 17, 2019
    Configuration menu
    Copy the full SHA
    9c418c2 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2019

  1. Update command/agent/consul/check_watcher.go

    Co-Authored-By: Mahmood Ali <mahmood@hashicorp.com>
    schmichael and Mahmood Ali committed Jul 18, 2019
    Configuration menu
    Copy the full SHA
    b4b2b42 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1763672 View commit details
    Browse the repository at this point in the history