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

Faster phased restart and worker timeout #2123

Closed
wants to merge 4 commits into from

Conversation

wjordan
Copy link
Contributor

@wjordan wjordan commented Feb 21, 2020

Description

Refactors the cluster main thread's command-processing loop to sleep for more precise times, allowing phased restart and worker timeouts to be performed faster instead of around the 5-second check-worker interval.

I've included tests covering these timing-change improvements (worker timeouts were previously not tested at all).

Depends on #2122 to fix a bug that's triggered by the stricter timing changes happening as a result of this PR.

Your checklist for this pull request

  • I have reviewed the guidelines for contributing to this repository.
  • I have added an entry to History.md if this PR fixes a bug or adds a feature. If it doesn't need an entry to HISTORY.md, I have added [changelog skip] the pull request title.
  • I have added appropriate tests if this PR fixes a bug or adds a feature.
  • My pull request is 100 lines added/removed or less so that it can be easily reviewed.
  • If this PR doesn't need tests (docs change), I added [ci skip] to the title of the PR.
  • If this closes any issues, I have added "Closes #issue" to the PR description or my commit messages.
  • I have updated the documentation accordingly.
  • All new and existing tests passed, including Rubocop.

On Windows, `read_nonblock` raises `Errno::EWOULDBLOCK` if a blocking read would occur, which is a different value from `Errno::EAGAIN`. Both of these errors are extended by `IO::WaitReadable` which is Ruby's recommended exception class for retrying `read_nonblock`.
@nateberkopec
Copy link
Member

LGTM but blocking on #2122

@nateberkopec nateberkopec added waiting-for-changes Waiting on changes from the requestor and removed waiting-for-review Waiting on review from anyone labels Mar 5, 2020
@nateberkopec
Copy link
Member

Merged, I manually dropped the duplicate threadpool refactor commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature maintenance waiting-for-changes Waiting on changes from the requestor
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants