-
Notifications
You must be signed in to change notification settings - Fork 115
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
system tests failing on aix due to libcrypto could not be loaded #129
Comments
It is trying to load libcurl.a and its dependent library libcrypto.so (in libcrypto.a). libcrypto.a from OpenSSL 1.1.1 bundled with JDK has only libcrypto.so.1.1. It doesn't have libcrypto.so. Hence, it failed. I am wondering why libcrypto.a from JDK directory is loaded. It should load libcrypto.a that contains required version of libcrypto.so |
@Mesbah-Alam @smlambert can you please help with this one. I suspect the tests are setting LIBPATH or similar to contain |
Looking at the code in the above mk file, one of the values being set in LIBPATH would be "$(JAVA_LIB_DIR)$(D)$(ARCH_DIR)$(D)$(VM_SUBDIR)", which, for this test would be: @pshipton - this code has been there for a while. Is this a new problem on AIX? Can it be an AIX issue with the Curl installation? I did a google with the error and found this: nodejs/build#551 There is a comment by @sxa555 here that might be of interest:
|
@Mesbah-Alam this is a new problem as libcrypto was recently added to the VM directory.
|
|
@Mesbah-Alam Weird, because when I look at a machine the LIBPATH is set to /usr/lib and this directory does contain libcrypto.a. Are you sure the changes took effect in the grinder? I don't see any confirmation in the output. |
The changes should have taken effect, from the job output:
So it's checking out openj9 from the branch where the change was made.. |
Logging into the machine
|
@keithc-ca @mikezhang1234567890 any ideas? |
Logging into the machine and issuing the make commands locally to compile the test makes it work. It could be a grinder issue which is causing the change to not get picked up! I've created a PR with the change https://github.com/eclipse/openj9/pull/3289/files |
Some environment variables get set as part of an interactive login; perhaps the jenkins slave doesn't have |
I think we are good, Mesbah's fix is working. The initial tests were not running with the fix. |
Fixed by eclipse-openj9/openj9#3289 |
Still failing, I've put comments into eclipse-openj9/openj9#3289 |
@Mesbah-Alam can you please scour the code again for any places we might have missed. |
I did another search. I can not find any other place where LIBPATH is being exported other than the places we have already changed. The problem seems to be somewhere else. |
I believe its the VM itself which is setting the LIBPATH and causing this problem. The VM sets the LIBPATH as follows, and I expect anything exec'ed from the VM will inherit this.
|
Disabling openssl on AIX at OpenJ9 eclipse-openj9/openj9#3334 |
Created an issue at Adopt as well adoptium/temurin-build#658 |
I've hit issues before with the AIX JVM replacing things in the |
@sxa555 We could just stop bundling. This will cause the VM to go looking for a libcrypto.a I believe. If everything works correctly, it would typically find the wrong version on the system, fail to load the JNI library, and fail back to Java crypto code. There is some risk of it not working correctly and then I'm not sure what will happen, although @mbvreddy tells me it works. If you want to try not bundling at Adopt we can see if any problems occur. For OpenJ9 since we don't have the correct libcrypto library on the machines, disabling the openssl support seemed the safer short term alternative to ensure that AIX testing would proceed without problems for the 0.11.0 release. If the JVM is created with openssl support enabled, a user (including OpenJ9) could build an openssl 1.1 library and make it available on the machine for the VM to find. However this may just result in similar problems as described in this Issue, depending on how the user makes the crypto library available to the VM. I expect there are workarounds, which require experimentation and documentation. This can be sorted out in the next week or so I expect. |
OpenSSL should now be working on all platforms. Closing issue. |
https://ci.eclipse.org/openj9/job/Test-sanity.system-JDK8-aix_ppc-64_cmprssptrs/107/console
https://ci.eclipse.org/openj9/job/Test-extended.system-JDK8-aix_ppc-64_cmprssptrs/58/console
The text was updated successfully, but these errors were encountered: