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
        Andrew Bayer
      2. WHIRR-579.patch
        2 kB
        Tom White

        Activity

        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.
        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.
        Hide
        Tom White added a comment -

        +1 to the latest patch.

        Show
        Tom White added a comment - +1 to the latest patch.
        Hide
        Andrew Bayer added a comment -

        Committed.

        Show
        Andrew Bayer added a comment - Committed.

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development