-
Notifications
You must be signed in to change notification settings - Fork 642
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
Launcher fails with Java 10 or later #953
Comments
Confirmed. An easy solution would be to pin openjdk to <10 in bioconda. |
That's weird we have integration tests for JDK 8 up to 11. What's the version string returned by your JDK?
|
For us, it returns
Best, |
This is mine
and
Apparently the Zulu distribution deviate from OpenJdk adding the minor version in that string causing this problem. |
IMHO, it would definitely add to nextflows popularity if java versions delivered by large and state of the art software management tools (e.g. conda, in this case java comes from the conda-forge channel) would be seamlessly supported by nextflow. I guess there are numerous parsers for version numbers available in groovy (e.g. |
The problem is not NF but Capsule package manager that seems to not recognise the version. |
The Java spec for version number just for ref. |
Actually this code. |
Sorry, my bad about blaming nf then 😉 |
I checked the regex pattern, it recognizes also minor versions..? |
I've isolate the code
It works for Java 8 and 9 and fails with 10 .. not sure to understand how test can pass on travis ? 😕 If you want to try it, save the above snippet, then use |
Thanks a lot! I can look into it and eventually propose a fix upstream. |
Ok, looking better at this the regex However this does not explain why tests with OpenJDK are fine. I think this happens because before checking and I guess Azul is not recognised by the latter. Could you please check how is the installation path of your Azul JVM ? |
Ahah, it looks conda mess up the Java install path, therefore it tries to use the
|
Thanks for figuring this out! I'm fine with Capsule falling back to |
Requires puniverse/capsule#129 and puniverse/capsule#130. |
I've submitted this pull request to bioconda to pin openjdk=8 on the current |
Patched in capsule fork 1.0.3.1 nextflow-io/capsule@df271ea |
This commit fixes nextflow laucnher error when installing it whit Conda and using Java 10 or later. In a nutshell the Capsule, the package manager used by Nextflow is not able to parse the Java version number used since version 10. Therefore it tries to infer the version from the installation path, but Conda uses a custom format, therefore Capsule returns an error message. The problem is fixed by using a pacther version of Capsule forked from the original repo https://github.com/nextflow-io/capsule/tree/nextflow
Great! We'll give it a try. |
Not yet released. |
seems java faile to merge this pr; |
Just ran into this issue as well using bioconda installed nextflow on a google cloud linux box:
not sure where the -internal is coming from, but that JDK is from the conda-forge one:
|
Stating this internal suffix identifies
Make sure to use a stable Java release. |
It's not the This broke for me going from |
The current regex fails to parse `11.0.9.1-internal` due to the `.1` "update" group. This version is coming from openjdk conda forge. See [here](nextflow-io/nextflow#953 (comment)) for more details. This change allows for `_<update>` or `.<update>` in the version string.
You are right in this specific case, but depending the java version I've also seen failing for other reasons. For example with Java 9, crash because some Java cli options required by NF are not available with the internal version. Therefore we are not planning to support |
I also had this error when wanting to install Nextflow via Bioconda. I solved it by pinning openjdk to 11.0.8, which doesn't have the same problem as 11.0.9.1: |
Interesting. I just solved it by using
after manual download of nextflow "one.jar" to ~/.nextflow/framework/21.04.3/nextflow-21.04.3-one.jar Edit: maybe a better option (for me) was to set the global environment variable Then I don't have to deactivate conda. |
One possible reason could be the number of tokens in the version number. |
@ArtemSokolov, as Paolo mentioned, there are a few reasons why this issue pops up. You seem to have hit the same one as me, which is a regex that is expecting the "update" number as edit: it looks like capsule the project is dead, but @pditommaso has a fork of it? @pditommaso should I make my PR into your fork instead? |
My point |
I could be wrong, but I don't think that the problem-causing
which I believe is fair to consider as part of a stable release. |
Then it should be supported. |
Java Version Installed. Detected openjdk version "11.0.14.1". Please use Java 1.8.0 |
Bug report
Installing nextflow via conda on a fresh environment will install nextflow 18.10.1 and openjdk 10.0.2. However, executing nextflow with these versions yields the following:
Is nextflow supposed to support java 10?
Environment
Additional context
(Add any other context about the problem here)
The text was updated successfully, but these errors were encountered: