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"
 

Reply via email to