You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bigtop.apache.org by "Sean Mackrory (JIRA)" <ji...@apache.org> on 2013/06/27 18:31:20 UTC

[jira] [Commented] (BIGTOP-1011) bigtop-detect-javahome has a quirky search order

    [ https://issues.apache.org/jira/browse/BIGTOP-1011?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13694843#comment-13694843 ] 

Sean Mackrory commented on BIGTOP-1011:
---------------------------------------

I'll need to do some experimenting to see if I can verify how much of my speculation is true, but here's my speculation anyway:

* Regarding defaults: Some systems will, by necessity, have a JDK we don't support installed by the host OS, and links like /usr/java/default may be maintained by those packages. In such instances, it is probably correct to default to a version we explicitly support first, then to the generic links, then to other common links that we explicitly don't support.
* I agree this is a problem, and I'll see if I can tweak our algorithm to use a reverse alphanumeric sort...
* AFAIK when it comes to Hadoop, Oracle Java 6 > Oracle Java 7, OpenJDK 6 < OpenJDK 7, and Oracle JDK * > OpenJDK *. I may be wrong
                
> bigtop-detect-javahome has a quirky search order
> ------------------------------------------------
>
>                 Key: BIGTOP-1011
>                 URL: https://issues.apache.org/jira/browse/BIGTOP-1011
>             Project: Bigtop
>          Issue Type: Bug
>            Reporter: Jolly Chen
>            Assignee: Sean Mackrory
>
> If JAVA_HOME is not set, bigtop-detect-javahome has a very quirky search order that can have surprising behavior.
> Some problems:
>   - because the "defaults" (like /usr/java/default, /usr/lib/jvm/default-java, /Library/Java/Home) are in the middle of the search list, bigtop will pick up other random JDKs instead of the 'default' the user already has set up on the system.
>   - due to use of wildcards, earlier minor versions can be preferred over later minor versions, e.g. /usr/java/jdk1.6* will find 1.6.0_31 before 1.6.0_43, which is probably not what the user wants.
>   - 1.6 and 1.7 preference order is not consistent (e.g. generally 1.6 is preferred over 1.7 but not for openJDK)
> This is related to previous issue: https://issues.apache.org/jira/browse/BIGTOP-843
> # attempt to find java
> if [ -z "$JAVA_HOME" ]; then
>   for candidate in \
>     /usr/lib/j2sdk1.6-sun \
>     /usr/lib/jvm/java-6-sun \
>     /usr/lib/jvm/java-1.6.0-sun-1.6.0.* \
>     /usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/ \
>     /usr/lib/jvm/j2sdk1.6-oracle \
>     /usr/lib/jvm/j2sdk1.6-oracle/jre \
>     /usr/java/jdk1.6* \
>     /usr/java/jre1.6* \
>     /usr/java/jdk1.7* \
>     /usr/java/jre1.7* \
>     /usr/lib/jvm/j2sdk1.7-oracle \
>     /usr/lib/jvm/j2sdk1.7-oracle/jre \
>     /Library/Java/Home \
>     /usr/java/default \
>     /usr/lib/jvm/default-java \
>     /usr/lib/jvm/java-openjdk \
>     /usr/lib/jvm/jre-openjdk \
>     /usr/lib/jvm/java-1.7.0-openjdk* \
>     /usr/lib/jvm/java-7-openjdk* \
>     /usr/lib/jvm/java-7-oracle* \
>     /usr/lib/jvm/java-1.6.0-openjdk \
>     /usr/lib/jvm/java-1.6.0-openjdk-* \
>     /usr/lib/jvm/jre-1.6.0-openjdk* ; do

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira