Skip to content

Make AdoptOpenJDK Eclipse OpenJ9 the Java runtime for Java actions - #24

Merged
csantanapr merged 1 commit into
apache:masterfrom
Param-S:SupportAdoptOpenJDKEclipseOpenJ9
Apr 16, 2018
Merged

Make AdoptOpenJDK Eclipse OpenJ9 the Java runtime for Java actions#24
csantanapr merged 1 commit into
apache:masterfrom
Param-S:SupportAdoptOpenJDKEclipseOpenJ9

Conversation

@Param-S

Copy link
Copy Markdown
Contributor

Eclipse OpenJ9 runtime for Java is opensource runtime which is available as binary through AdoptOpenJDK community builds. By making available of the Eclipse OpenJ9 for OW Java actions, it gives the developers the option to choose between different Java runtime implementations.

Signed-off-by: Parameswaran Selvam sparameswara@gmail.com

Comment threadcore/javaAction/Dockerfile.OpenJ9 Outdated
@@ -0,0 +1,10 @@
FROM adoptopenjdk/openjdk8-openj9:x86_64-ubuntu-jdk8u152-b16

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should replace the current image using oracle jdk and replcae the current java8action one with with this openjdk which uses ubuntu/debian based, transparent transition

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

then we can close the other PR as this takes care of it ???

@kameshsampathkameshsampath left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I checked the docker hub of AdpotOpenJDK I just see adoptopenjdk/openjdk8-openj9, where are you getting this Adoptopenjdk/openjdk8-openj9:x86_64-ubuntu-jdk8u152-b16 from ?

@Param-S

Copy link
Copy Markdown
ContributorAuthor

Please refer the tags section https://hub.docker.com/r/adoptopenjdk/openjdk8-openj9/tags/

x86_64-ubuntu-jdk8u152-b16

@kameshsampath

Copy link
Copy Markdown

@Param-S@csantanapr check this https://github.com/kameshsampath/adoptopenjdk , I have made the docker images temptable which right now builds JDK8/JDK9 for Centos/Debian using AdoptOpenJDK builds for both hotspot/openj9. This should reduce our maintenance much easier. WDYT?

@Param-S

Copy link
Copy Markdown
ContributorAuthor

@kameshsampath It will be useful. But, I think, we can have separate discussion as we may need to focus on less footprint images (like alpine based). We can have this discussion separately in issues, discuss on the need to support another distro, advantages & etc.

@csantanaprcsantanapr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please replace current image do not create new one.

Comment threadgradle/docker.gradle Outdated
dockerRetries = project.hasProperty('dockerRetries') ? dockerRetries.toInteger() : 3
dockerBinary = project.hasProperty('dockerBinary') ? [dockerBinary] : ['docker']
dockerBuildArg = ['build']
dockerFile = project.hasProperty('dockerFile') ? dockerFile : 'Dockerfile'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to change docker.gradle.
Please replace the current image in https://github.com/apache/incubator-openwhisk-runtime-java/blob/master/core/javaAction/Dockerfile

@dinogun

Copy link
Copy Markdown

Just thought it is relevant to this discussion - Advantages with OpenJ9

@Param-S
Param-Sforce-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch from 7adbbce to 32ab6baCompareMarch 12, 2018 13:53
@Param-SParam-S changed the title AdoptOpenJDK Eclipse OpenJ9 as alternative Java runtimeMake AdoptOpenJDK Eclipse OpenJ9 the Java runtime for Java actionsMar 12, 2018
@Param-S

Copy link
Copy Markdown
ContributorAuthor

@csantanapr made modification to make AdoptOpenJDK_EclipseOpenJ9 JDK image is the default for Java actions

@Param-S

Copy link
Copy Markdown
ContributorAuthor

actionContainers.JavaActionContainerTests > Java action should handle unicode in source, input params, logs, and result FAILED.

Looking at the failure

@csantanapr

Copy link
Copy Markdown
Member

It could be related to locale and utf need to be set in env in the runtime

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You’ll want to restore these.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven’t looked at the new dockerfile dependence below. If these aren’t set you’ll need to reset them.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep those are the ones I was referring 👍

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Restored the locale specific environment variable settings.

@Param-SParam-SMar 13, 2018

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @rabbah@csantanapr Restoring the environment variable solved the issue. All checks passed.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just noticed you added the locales package here. Good belt-and-suspenders approach.

@Param-S
Param-Sforce-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch from 32ab6ba to 9589f83CompareMarch 13, 2018 11:54
@dinogun

Copy link
Copy Markdown

The latest OpenJ9 Docker images have now been marked as TCK certified, and so the Dont use in Production banner has been removed as well.

@Param-S Please use the tag jdk8u162-b12_openj9-0.8.0 (This is a multi-arch tag and works on x86_64, ppc64le and s390x)

@Param-S
Param-Sforce-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch 2 times, most recently from 45bd5c9 to a9289f6CompareMarch 16, 2018 08:23
@Param-S

Copy link
Copy Markdown
ContributorAuthor

Updated Docker file with latest AdoptOpenJDK TCK compliant docker build.

Comment threadcore/javaAction/Dockerfile Outdated
@@ -1,38 +1,23 @@
FROM buildpack-deps:trusty-curl
FROM adoptopenjdk/openjdk8-openj9:x86_64-ubuntu-jdk8u162-b12_openj9-0.8.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I mentioned in my comment, use the jdk8u162-b12_openj9-0.8.0 tag rather than the x86_64-ubuntu-jdk8u162-b12_openj9-0.8.0

@Param-S
Param-Sforce-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch from a9289f6 to c05de88CompareMarch 16, 2018 10:59
@jonpspri

Copy link
Copy Markdown
Contributor

I’m working my way through a multi-architecture build for this. Is there a reason we feel the need to build the proxy JAR within the Docker image? My gut would be to build it once on the build machine and copy the resulting JAR onto the Docker image. Thoughts?

@jonpspri

Copy link
Copy Markdown
Contributor

Running into the unicode failure again using jdk8u162-b12_openj9-0.8.0. The environment variables mentioned above are set in the runtime and also in the test compile environment. Any thoughts on additional potential causes?

@Param-S

Copy link
Copy Markdown
ContributorAuthor

@jonpspri which testcase fails with the latest Docker image.

@jonpspri

Copy link
Copy Markdown
Contributor

@Param-S The same unicode test case as above. Hold tight — I seem to have some classpath issues and may not be running the correct test issues. Will be filing a PR over in incubator-openwhisk about that shortly.

@jonpspri

Copy link
Copy Markdown
Contributor

I think I found my problem buried in a circular dependency on incubator-openwhisk for some of the core test classes, which means I was never sure what locale settings any given class was compiled under. I’m working on some separate PRs for that but it appears that the multi-architecture tag will give us a clean build and test on all architectures.

@jonpspri

Copy link
Copy Markdown
Contributor

Found it. For whatever reason, the proxy was running using the ‘US-ASCII’ code page to log to the Docker log. Safest and most explicit resolution is to add ‘-Dfile.encoding=UTF-8’ to the CMD line. That way there’s no room for confusion.

Comment threadcore/javaAction/Dockerfile Outdated
&& ./compileClassCache.sh

CMD ["java", "-jar", "/javaAction/build/libs/javaAction-all.jar"]
CMD ["java", "-Xshareclasses:cacheDir=/javaSharedCache,readonly", "-Xquickstart", "-jar", "/javaAction/build/libs/javaAction-all.jar"]

@jonpsprijonpspriMar 21, 2018

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest also adding ‘-Dfile.encoding=UTF-8’. I think that may even do away with the need to use the locales apt package (though nothing is certain when it comes to locales.)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agree. I update the PR

@Param-S
Param-Sforce-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch from c05de88 to e842640CompareMarch 22, 2018 11:41

@csantanaprcsantanapr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@csantanapr

Copy link
Copy Markdown
Member

@Param-S could you rebase the PR?

Enable AdoptOpenJDK + Eclipse OpenJ9 JVM is the Java runtime for OpenWhisk Java actions.
Signed-off-by: Parameswaran Selvam <sparameswara@gmail.com>
@Param-S
Param-Sforce-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch from e842640 to d55dc47CompareApril 5, 2018 14:45
@Param-S

Copy link
Copy Markdown
ContributorAuthor

@csantanapr rebased the PR.

@csantanapr
csantanapr merged commit aeda0a4 into apache:masterApr 16, 2018
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@Param-S@kameshsampath@dinogun@csantanapr@jonpspri@rabbah