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

Improve worker shutdown reliability, CI fixes #2312

Merged
merged 3 commits into from Jul 20, 2020

Conversation

MSP-Greg
Copy link
Member

Description

CI is unreliable, with random failures across all Ruby types. Small changes to lib files for shutdown, minor test changes.

Note that incomplete JRuby SSL implementation (Puma::MiniSSL::Engine #init? & #shutdown) will still intermittently cause CI failure.

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.

helper.rb
Previous code used #capture_exceptions to add a timeout to every test.
That method is called once for set methods and the test method, and once
for the teardown methods.  New code uses #time_it, which wraps all the
methods in one timeout thread.

test_integration.rb
Add another error to UnixSocket tests.
@nateberkopec
Copy link
Member

LGTM, the additional rescues are fairly conservative IMO.

@nateberkopec nateberkopec merged commit f231633 into puma:master Jul 20, 2020
t0 = Minitest.clock_time
::Timeout.timeout(RUBY_ENGINE == 'ruby' ? 60 : 120, TestTookTooLong) { yield }
ensure
self.time = Minitest.clock_time - t0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants