eclipse-openj9 / openj9

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Other
3.28k stars 722 forks source link

Native tests failed while loading shared libraries: libj9prt29.so with PPCLE JDK8 #3515

Open sophia-guo opened 6 years ago

sophia-guo commented 6 years ago

Native tests failed while loading shared libraries: libj9prt29.so with PPCLE openjdk8-openj9. Tests expect shared libraries are located at jre/lib/ppc64le/compressedrefs, which actually are located at jre/lib/ppc64/compressedrefs.

PPCLE openjdk8-hotspot jdk has the structure like jre/lib/ppc64le FYI @pshipton

=============================================== 12:51:12 Running test algotest2_0 ... 12:51:12 =============================================== 12:51:12 algotest2_0 Start Time: Thu Nov 1 12:51:11 2018 Epoch Time (ms): 1541091072003 12:51:12 test with NoOptions 12:51:12 { mkdir -p "/home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_15410883607746/algotest2_0"; \ 12:51:12 cd "/home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_15410883607746/algotest2_0"; \ 12:51:12 export LD_LIBRARY_PATH=""/home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdkbinary/j2sdk-image/jre/bin/../../../native-test-libs/:/home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdkbinary/j2sdk-image/jre/bin/../lib/ppc64le/compressedrefs:/home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdkbinary/j2sdk-image/jre/bin/../lib/ppc64le/j9vm":"; \ 12:51:12 '/home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdkbinary/j2sdk-image/jre/bin/../../../native-test-libs//algotest' -avltest:/home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdk-tests/TestConfig/scripts/testKitGen/../../../../jvmtest/functional/NativeTest/../algotest/avltest.lst -Xcheck:memory:ignoreUnfreedCallsite=zip/:dbgwrapper:unknown:wrapper; \ 12:51:12 if [ $? -eq 0 ] ; then echo ""; echo "algotest2_0""_PASSED"; echo ""; cd /home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdk-tests/TestConfig/scripts/testKitGen/../../..; rm -f -r "/home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_15410883607746/algotest2_0"; else echo ""; echo "algotest2_0""_FAILED"; echo ""; fi; } 2>&1 | tee -a "/home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdk-tests/TestConfig/scripts/testKitGen/../../../TestConfig/test_output_15410883607746/TestTargetResult"; 12:51:12 /home/jenkins/workspace/Test-sanity.functional-JDK8-linux_ppc-64_cmprssptrs_le/openjdkbinary/j2sdk-image/jre/bin/../../../native-test-libs//algotest: error while loading shared libraries: libj9prt29.so: cannot open shared object file: No such file or directory

sophia-guo commented 6 years ago

@pshipton which is the expected shared libraries path for ppcle jdk8 - jre/lib/ppc64le/compressedrefs or jre/lib/ppc64/compressedrefs?

pshipton commented 6 years ago

The solution is to use the test images that are created for jkd8, similar to how jdk11 works. We intend to delete the test libraries from the compressedrefs directory once the tests can be updated.

ppc64le is correct, created https://github.com/ibmruntimes/openj9-openjdk-jdk8/issues/190

keithc-ca commented 5 years ago

The tests seem to have been adapted to use the 'test-image' artifacts, so I expect this issue should be fixed by https://github.com/eclipse/openj9/pull/3628.

BTW, the native test path .../native-test-libs/ should not have a trailing slash; all uses seem to add another which can potentially cause case the path to be misinterpreted.