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

CI: Run latest JRuby release #128

Merged
merged 3 commits into from May 11, 2020
Merged

CI: Run latest JRuby release #128

merged 3 commits into from May 11, 2020

Conversation

olleolleolle
Copy link
Contributor

@olleolleolle olleolleolle commented May 11, 2020

This PR updates the CI matrix to use latest JRuby, 9.2.11.1.

JRuby 9.2.11.1 release blog post

Update: I changed the configuration not to point to a release, but to an rvm alias.

rvm responded with this:

$ rvm use jruby --install --binary --fuzzy
curl: (22) The requested URL returned error: 404 Not Found
Required jruby-head is not installed - installing.

@mperham
Copy link
Owner

mperham commented May 11, 2020

I'd like to know if there is a way to ask for the latest stable, so we don't have to bump this constantly.

@olleolleolle
Copy link
Contributor Author

If rvm has an alias in its "known" file, we can use that. I'll update this.

@olleolleolle
Copy link
Contributor Author

@olleolleolle
Copy link
Contributor Author

@mperham There.

@mperham
Copy link
Owner

mperham commented May 11, 2020

The jruby build is broken and I have no idea how to fix it. Are we just going to ignore it? If so, what's the point of including it?

@headius
Copy link

headius commented May 11, 2020

For reference the JRuby failure is here: https://travis-ci.org/github/mperham/connection_pool/jobs/685746458

I also noticed Ruby 2.6 failed one spec, but it seems to be a different spec.

There's only two failures on JRuby and they both appear to be related to concurrent-ruby executor logic. Perhaps the bug is there? I don't see anything that seems likely to be a JRuby bug.

@olleolleolle
Copy link
Contributor Author

olleolleolle commented May 11, 2020

Tests do not fail on JRuby 9.2.11.1 locally

$ uname -a
Darwin Olles-MBP-2.lan 19.4.0 Darwin Kernel Version 19.4.0: Wed Mar  4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64 x86_64
$ ruby -v
jruby 9.2.11.1 (2.5.7) 2020-03-25 b1f55b1a40 OpenJDK 64-Bit Server VM 14.0.1+7 on 14.0.1+7 +jit [darwin-x86_64]

I seem to run a newer JDK.

Update Well, what unites the two tests that fail is that they use Timeout.timeout(n) { }.

@headius
Copy link

headius commented May 11, 2020

Nevermind... I saw "concurrent" in the trace and thought "concurrent-ruby". This appears to be happening in JRuby's timeout implementation.

@olleolleolle That's helpful information, thanks. I just ran it on 8 with JRuby master and it does fail locally there.

@headius
Copy link

headius commented May 11, 2020

This was introduced by jruby/jruby@37325d6

In order to avoid leaving the Timeout executor running (e.g. for embedded JRuby use cases where the JVM continues running) we introduced code to terminate it at shutdown. Unfortunately we introduced that shutdown using the same mechanism as at_exit, which means the executor might be shut down before all Ruby code registered with at_exit has run.

This is the cause of the failure, because Minitest uses an at_exit hook to run all its tests. That hook gets registered later than Timeout's executor-shutdown hook, so there's no executor by the time the tests run.

This is a trivial fix in JRuby. The only possible workaround would be to forcibly remove the poison pill task in at_exit, which can't be done without digging around a lot of JRuby internals.

@headius
Copy link

headius commented May 11, 2020

The introduced bug only happens on JRuby master, so 9.2.11.1 is not affected.

I have filed jruby/jruby#6212 and will land a fix shortly.

@mperham mperham merged commit c46a347 into mperham:master May 11, 2020
@olleolleolle olleolleolle deleted the patch-1 branch May 11, 2020 20:59
@headius
Copy link

headius commented May 11, 2020

I have merged jruby/jruby#6212 into JRuby master and it should go out in the next snapshot and nightly builds.

@headius
Copy link

headius commented May 11, 2020

Oops, jruby/jruby#6213 is the PR.

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

Successfully merging this pull request may close these issues.

None yet

3 participants