cloudera-ps / prereq-checks

Prerequisites checker for Cloudera Manager and CDP PVC Base installations
GNU General Public License v3.0
57 stars 58 forks source link

Java checker falsely identifies openjdk as Oracle java #106

Closed dbeech closed 6 years ago

dbeech commented 6 years ago

The pre-req checker is identifying some openjdk versions as Oracle java. The string check being used (java vs openjdk in the version output) is not consistent enough to rely on.

For example:

[root@dbeech-gsk-test ~]# /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64/bin/java -version
java version "1.7.0_181"
OpenJDK Runtime Environment (rhel-2.6.14.8.el7_5-x86_64 u181-b00)
OpenJDK 64-Bit Server VM (build 24.181-b00, mixed mode)

Script output:

PASS  Java: Supported Oracle Java: /usr/java/jdk1.7.0_67-cloudera/bin/java
PASS  Java: Supported Oracle Java: /usr/java/jdk1.8.0_121-cloudera/bin/java
PASS  Java: Unsupported Oracle Java: /usr/java/jdk1.6.0_31/bin/java
FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/java-openjdk/bin/java
FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/jre-openjdk/bin/java
PASS  Java: Supported Oracle Java: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64/bin/java
PASS  Java: Supported Oracle Java: /usr/lib/jvm/java-1.7.0-openjdk/bin/java
FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/bin/java
FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/java-1.8.0-openjdk/bin/java
PASS  Java: Unsupported Oracle Java: /usr/lib/jvm/java-1.6.0-openjdk.x86_64/bin/java
PASS  Java: Unsupported Oracle Java: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.41.x86_64/bin/java
PASS  Java: Unsupported Oracle Java: /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

The various JDKs I have installed:

[root@dbeech-gsk-test ~]# rpm -qa | egrep '(oracle|jdk)' | sort
copy-jdk-configs-3.3-10.el7_5.noarch
java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el7_3.x86_64
java-1.6.0-openjdk-devel-1.6.0.41-1.13.13.1.el7_3.x86_64
java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64
java-1.7.0-openjdk-devel-1.7.0.181-2.6.14.8.el7_5.x86_64
java-1.7.0-openjdk-headless-1.7.0.181-2.6.14.8.el7_5.x86_64
java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
java-1.8.0-openjdk-devel-1.8.0.181-3.b13.el7_5.x86_64
java-1.8.0-openjdk-headless-1.8.0.181-3.b13.el7_5.x86_64
jdk-1.6.0_31-fcs.x86_64
oracle-j2sdk1.7-1.7.0+update67-1.x86_64
oracle-j2sdk1.8-1.8.0+update121-1.x86_64
jamestyj commented 6 years ago

@dbeech Thanks for reporting. Would be fantastic if you could submit a pull request to fix this. :)

dbeech commented 6 years ago

Hi @jamestyj, just submitted one.

Script now outputs:

 PASS  Java: Supported Oracle Java: /usr/java/jdk1.7.0_67-cloudera/bin/java
 PASS  Java: Supported Oracle Java: /usr/java/jdk1.8.0_121-cloudera/bin/java
 FAIL  Java: Unsupported Oracle Java: /usr/java/jdk1.6.0_31/bin/java
 FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/java-openjdk/bin/java
 FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/jre-openjdk/bin/java
 FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64/bin/java
 FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/java-1.7.0-openjdk/bin/java
 FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/bin/java
 FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/java-1.8.0-openjdk/bin/java
 FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/java-1.6.0-openjdk.x86_64/bin/java
 FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.41.x86_64/bin/java
 FAIL  Java: Unsupported OpenJDK: /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
jamestyj commented 6 years ago

Pull request looks good -- merged. Thanks for reporting and submitting the patch!