Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Apr 16, 2018

Conversation

Param-S
Copy link
Contributor

@Param-S Param-S commented Mar 5, 2018

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

@@ -0,0 +1,10 @@
FROM adoptopenjdk/openjdk8-openj9:x86_64-ubuntu-jdk8u152-b16
Copy link
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

Choose a reason for hiding this comment

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

+1

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 ???

Copy link

@kameshsampath kameshsampath left a comment

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
Contributor Author

Param-S commented Mar 6, 2018

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

x86_64-ubuntu-jdk8u152-b16

@kameshsampath
Copy link

@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
Contributor Author

Param-S commented Mar 7, 2018

@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.

Copy link
Member

@csantanapr csantanapr left a comment

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.

@@ -29,8 +29,8 @@ ext {
dockerRetries = project.hasProperty('dockerRetries') ? dockerRetries.toInteger() : 3
dockerBinary = project.hasProperty('dockerBinary') ? [dockerBinary] : ['docker']
dockerBuildArg = ['build']
dockerFile = project.hasProperty('dockerFile') ? dockerFile : 'Dockerfile'
Copy link
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

dinogun commented Mar 8, 2018

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

@Param-S Param-S force-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch from 7adbbce to 32ab6ba Compare March 12, 2018 13:53
@Param-S Param-S changed the title AdoptOpenJDK Eclipse OpenJ9 as alternative Java runtime Make AdoptOpenJDK Eclipse OpenJ9 the Java runtime for Java actions Mar 12, 2018
@Param-S
Copy link
Contributor Author

Param-S commented Mar 12, 2018

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

@Param-S
Copy link
Contributor Author

Param-S commented Mar 13, 2018

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

Looking at the failure

@csantanapr
Copy link
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
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
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
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
Contributor Author

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.

Copy link
Contributor Author

@Param-S Param-S Mar 13, 2018

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
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-S force-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch from 32ab6ba to 9589f83 Compare March 13, 2018 11:54
@dinogun
Copy link

dinogun commented Mar 15, 2018

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-S force-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch 2 times, most recently from 45bd5c9 to a9289f6 Compare March 16, 2018 08:23
@Param-S
Copy link
Contributor Author

Param-S commented Mar 16, 2018

Updated Docker file with latest AdoptOpenJDK TCK compliant docker build.

@@ -1,38 +1,23 @@
FROM buildpack-deps:trusty-curl
FROM adoptopenjdk/openjdk8-openj9:x86_64-ubuntu-jdk8u162-b12_openj9-0.8.0
Copy link

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-S force-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch from a9289f6 to c05de88 Compare March 16, 2018 10:59
@jonpspri
Copy link
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
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
Contributor Author

Param-S commented Mar 20, 2018

@jonpspri which testcase fails with the latest Docker image.

@jonpspri
Copy link
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
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
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.


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

@jonpspri jonpspri Mar 21, 2018

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
Contributor Author

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-S force-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch from c05de88 to e842640 Compare March 22, 2018 11:41
Copy link
Member

@csantanapr csantanapr left a comment

Choose a reason for hiding this comment

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

LGTM

@csantanapr
Copy link
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-S force-pushed the SupportAdoptOpenJDKEclipseOpenJ9 branch from e842640 to d55dc47 Compare April 5, 2018 14:45
@Param-S
Copy link
Contributor Author

Param-S commented Apr 5, 2018

@csantanapr rebased the PR.

@csantanapr csantanapr merged commit aeda0a4 into apache:master Apr 16, 2018
Sign up for free to 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.

None yet

6 participants