Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.7.1
    • Fix Version/s: 0.8.0
    • Component/s: service/hadoop
    • Labels:
      None
    • Environment:

      any

      Description

      Due to changes in licensing terms, automatic download from Oracle of the sunjdk is not working. Hence Hadoop installs but fails to launch. To add insult to injury, launch-cluster doesn't fail and I couldn't find a related message in the logs. Potential workarounds need to take into account that it seems like a human has to click on the dreaded Oracle TOS (disclaimer: I am not a lawyer and will never be). How to make that happen with whirr is unclear. The option of not supporting sunjdk seems unappealing as there is limited testing experience with it, I hear from people at Cloudera. But the apache hadoop compatibility page states that that sunjdk is needed only for building. Clarity on this would be helpful to plan ahead.

      1. WHIRR-579.patch
        2 kB
        Tom White
      2. WHIRR-579.patch
        2 kB
        Andrew Bayer

        Activity

        Antonio Piccolboni created issue -
        Hide
        Tom White added a comment -

        At this point I think the simplest way forward is to use OpenJDK. If this surfaces bugs when running on Hadoop etc, then let's file and fix them as they crop up. Also, this approach doesn't preclude using whirr.java.install-function to install other versions of Java using some custom code.

        I will create a patch to do this.

        Show
        Tom White added a comment - At this point I think the simplest way forward is to use OpenJDK. If this surfaces bugs when running on Hadoop etc, then let's file and fix them as they crop up. Also, this approach doesn't preclude using whirr.java.install-function to install other versions of Java using some custom code. I will create a patch to do this.
        Tom White made changes -
        Field Original Value New Value
        Attachment WHIRR-579.patch [ 12521410 ]
        Hide
        Donald Smith added a comment -

        Hi,

        I'm Donald Smith, and am a Product Manager in the Java SE PM team.

        I'm sorry for the inconvenience, but it is true that the terms need to be accepted on download from Oracle. The license does allow for internal only redistribution of the installer, but not external/publicly (see [1]).

        This issue has been noted elsewhere as well:
        http://issues.hudson-ci.org/browse/HUDSON-9016
        https://issues.jenkins-ci.org/browse/JENKINS-11039

        We are aware this is an inconvenience for build communities, and others like yours, and would like to address it. Unfortunately, it's going to take some time - probably more time than you will be happy with, and I'm sorry about that, but I want to be honest.

        In the meantime, we hope that using OpenJDK is viable, relying on your Linux distro, or relying on the end user to already have a JDK/JRE installed somewhere internally. I'm not familiar with the exact use cases you're dealing with, but you might also want to explore shipping the JRE with your application, which is described in more detail in [2], Section C - may not work for you, but I know it does for some.

        Cheers,

        • Don (@DonaldOJDK)

        [1] - http://www.java.com/en/download/faq/distribution.xml
        [2] - http://www.oracle.com/technetwork/java/javase/terms/license/index.html

        Show
        Donald Smith added a comment - Hi, I'm Donald Smith, and am a Product Manager in the Java SE PM team. I'm sorry for the inconvenience, but it is true that the terms need to be accepted on download from Oracle. The license does allow for internal only redistribution of the installer, but not external/publicly (see [1] ). This issue has been noted elsewhere as well: http://issues.hudson-ci.org/browse/HUDSON-9016 https://issues.jenkins-ci.org/browse/JENKINS-11039 We are aware this is an inconvenience for build communities, and others like yours, and would like to address it. Unfortunately, it's going to take some time - probably more time than you will be happy with, and I'm sorry about that, but I want to be honest. In the meantime, we hope that using OpenJDK is viable, relying on your Linux distro, or relying on the end user to already have a JDK/JRE installed somewhere internally. I'm not familiar with the exact use cases you're dealing with, but you might also want to explore shipping the JRE with your application, which is described in more detail in [2] , Section C - may not work for you, but I know it does for some. Cheers, Don (@DonaldOJDK) [1] - http://www.java.com/en/download/faq/distribution.xml [2] - http://www.oracle.com/technetwork/java/javase/terms/license/index.html
        Hide
        Andrei Savu added a comment -

        Thanks Donald for taking the time to explain.

        Show
        Andrei Savu added a comment - Thanks Donald for taking the time to explain.
        Hide
        Sandeep Parikh added a comment -

        Perhaps the solution is to have a patch that allows downloads from a custom location. Another option (at least on Amazon) would be to allow the use of private AMIs that have the Oracle JDK already installed (in my limited testing, this didn't seem to work).

        Show
        Sandeep Parikh added a comment - Perhaps the solution is to have a patch that allows downloads from a custom location. Another option (at least on Amazon) would be to allow the use of private AMIs that have the Oracle JDK already installed (in my limited testing, this didn't seem to work).
        Hide
        Andrew Bayer added a comment -

        Another option would be to do something like what Jenkins does - when configuring a Java installer in the Jenkins management UI, you have to click through and accept the license/terms/etc. But then Jenkins will cache that downloaded tarball and reuse it on any of its slaves. So if we could add a click-through behavior to the Whirr CLI, we should be able to stay in line with the terms and conditions.

        But in the meantime, OpenJDK is probably the best default option, with clear documentation saying "If your app won't work on OpenJDK, you'll need to install Oracle JDK on your boxes yourself"

        Show
        Andrew Bayer added a comment - Another option would be to do something like what Jenkins does - when configuring a Java installer in the Jenkins management UI, you have to click through and accept the license/terms/etc. But then Jenkins will cache that downloaded tarball and reuse it on any of its slaves. So if we could add a click-through behavior to the Whirr CLI, we should be able to stay in line with the terms and conditions. But in the meantime, OpenJDK is probably the best default option, with clear documentation saying "If your app won't work on OpenJDK, you'll need to install Oracle JDK on your boxes yourself"
        Hide
        Tom White added a comment -

        That's a neat idea. We could use the Whirr feature that pushes binaries to a blobstore then localizes on nodes to do this. Still some overhead though, and OpenJDK is simpler and should be the default as you say.

        Show
        Tom White added a comment - That's a neat idea. We could use the Whirr feature that pushes binaries to a blobstore then localizes on nodes to do this. Still some overhead though, and OpenJDK is simpler and should be the default as you say.
        Hide
        Andrew Bayer added a comment -

        This tweaked patch switches to OpenJDK for now. Eventually getting a viable Oracle JDK install would be nice, but this should cover us for now.

        Show
        Andrew Bayer added a comment - This tweaked patch switches to OpenJDK for now. Eventually getting a viable Oracle JDK install would be nice, but this should cover us for now.
        Andrew Bayer made changes -
        Attachment WHIRR-579.patch [ 12539935 ]
        Hide
        Tom White added a comment -

        +1 to the latest patch.

        Show
        Tom White added a comment - +1 to the latest patch.
        Andrew Bayer made changes -
        Assignee Andrew Bayer [ abayer ]
        Hide
        Andrew Bayer added a comment -

        Committed.

        Show
        Andrew Bayer added a comment - Committed.
        Andrew Bayer made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 0.8.0 [ 12321649 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            Andrew Bayer
            Reporter:
            Antonio Piccolboni
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development