This is an automated email from the ASF dual-hosted git repository. michaelsmith pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/impala.git
commit 472dea5c3c814128e7827e34faa57ed798b06565 Author: Michael Smith <[email protected]> AuthorDate: Thu Oct 26 23:14:53 2023 +0000 IMPALA-12355: Make utility_entrypoint arch-agnostic Updates utility_entrypoint.sh for the impala_profile_tool image to detect the correct JVM native library paths based on a glob, as they're architecture-specific. Follows the pattern established in daemon_entrypoint.sh, except impala_profile_tool only uses Java 8 on Ubuntu. Excepted output $ docker run --entrypoint bash -i impala_profile_tool_debug /opt/impala/bin/utility_entrypoint.sh LD_LIBRARY_PATH: /opt/impala/lib:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server Change-Id: I8e6b781bef52e60072ff02f4098d5ad9405aa2be Reviewed-on: http://gerrit.cloudera.org:8080/20629 Tested-by: Impala Public Jenkins <[email protected]> Reviewed-by: Michael Smith <[email protected]> --- docker/utility_entrypoint.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/docker/utility_entrypoint.sh b/docker/utility_entrypoint.sh index 0fd8785a8..90617b5fb 100755 --- a/docker/utility_entrypoint.sh +++ b/docker/utility_entrypoint.sh @@ -22,11 +22,21 @@ export IMPALA_HOME=/opt/impala +# Since the Java location includes the CPU architecture, use a glob to find Java home +export JAVA_HOME=$(compgen -G "/usr/lib/jvm/java-8-openjdk*") + # Add directories containing dynamic libraries required by the daemons that # are not on the system library paths. export LD_LIBRARY_PATH=/opt/impala/lib -LD_LIBRARY_PATH+=:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/ -LD_LIBRARY_PATH+=:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/ + +# Given JAVA_HOME, find libjvm.so and add them to LD_LIBRARY_PATH. +# JAVA_HOME could be a symlink, so follow symlinks when looking for the libraries +LIB_JVM_DIR=$(find -L "${JAVA_HOME}" -name libjvm.so | head -1 | xargs dirname) +if [[ -z $LIB_JVM_DIR ]]; then + echo "ERROR: Could not find libjvm.so in ${JAVA_HOME}" + exit 1 +fi +LD_LIBRARY_PATH+=:${LIB_JVM_DIR} echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
