-
Notifications
You must be signed in to change notification settings - Fork 722
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
Update OpenSSL version to 1.1.1 on Eclipse PR Jenkins build and test machines #8138
Comments
Does JIT server have a hard requirement to use 1.1.1? I think you'll be ruling out running JIT server on some Linux OSes, which don't provide openssl 1.1.1 libraries. The openssl support in the class libraries works with 1.0.x or 1.1.x, even though we build it against 1.1.1. |
fyi the JCL support for loading libcrypto |
JITServer can use either 1.0.x or 1.1.x. As I understand, the problem is that if we build with 1.1.x, at runtime it needs to find 1.1.x installed on the system. |
@mpirvu please take a look at the JCL code and how it works to load what is available, the JIT should be able to do the same. |
Then should we not be building with the lowest supported version? Similar to how glibc works. |
@AdamBrousseau Marius didn't write it down here, but the plan is to modify the code to load and link dynamically with libssl, similar to what the JCL code does for libcyrpto.
It doesn't work the same way. As long as the APIs are the same between versions, it doesn't matter which version is used to compile against. |
Correct. We are working towards an implementation that would eliminate the above restriction and hope to have a prototype by tomorrow EOD for review. |
@pshipton @AdamBrousseau @mpirvu I’m experimenting JITServe code to dynamically load OpenSSL. The proto code is in #8145. I found a few issues when replacing the OpenSSL macros:
With the issues found so far, just wondering if we should consider the following two alternatives:
|
If the code is compiled against 1.0.2, does it still work on 1.1.1? There could be similar problems to what you describe doing it that way as well. 1.0.2[a-z] are security updates, I wouldn't expect any incompatibilities, but who knows. I'll create a PR and try compiling against 1.0.2. I'm not sure if this has been tried for the JCL support so I can't say if it works or not. |
I'd assume it should be backward compatible but not 100% sure. Looks like there are failures in building 1.0.2 OpenSSL in #8155. Should we consider option 2?
There was an env flag |
I'll defer to @mpirvu about option 2. For supporting 1.0.x and 1.1.1, are there APIs which can be used in place of the macros? I'm not that familiar with the JCL crypto implementation, but it loads all the APIs dynamically and manages to work with both versions. Perhaps it's a simpler usage though. |
The behavior that I would like to see is the following:
|
The disadvantage of this solution is that the default is going to be to build without OpenSSl and this is what we are going to force on the liberty/openshift users. Anybody wanting to use JITServer with encryption would have to build their own openj9 SDK |
Dynamically load the OpenSSL libssl symbols required by JITServer. Replaced all the libssl APIs with function calls to the loaded symbols during the runtime. Related to eclipse-openj9#8138 Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
Dynamically load the OpenSSL libssl symbols required by JITServer. Replaced all the libssl APIs with function calls to the loaded symbols during the runtime. Related to eclipse-openj9#8138 Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
#8182 eliminates the dependency on the version of the OpenSSL during the build time. Therefore close this issue. |
Some PPC linux
JITServer
PR builds and tests #8117 [1] fail due to the lower versions of theOpenSSL
installed on the system. The JIT is built against1.1.1d
fetched into/home/jenkins/workspace/Build_JDK8_ppc64le_linux_jit_Personal/openssl
. During the runtime, it would link to the system installedOpenSSL
which is1.0.2g
on those machines.Could all the PPC build and test machines have
OpenSSL 1.1.1
installed? Thanks!https://ci.eclipse.org/openj9/job/Build_JDK11_ppc64le_linux_jit_Personal/1/console
https://ci.eclipse.org/openj9/job/Build_JDK8_ppc64le_linux_jit_Personal/4/console
https://ci.eclipse.org/openj9/job/Test_openjdk11_j9_sanity.functional_ppc64le_linux_Personal/421/console
https://ci.eclipse.org/openj9/job/Test_openjdk8_j9_sanity.functional_ppc64le_linux_Personal/434/console
The text was updated successfully, but these errors were encountered: