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

Support building Che on linux on Z (s390x) and Power (ppc64le) #16655

Closed
3 of 6 tasks
nickboldt opened this issue Apr 17, 2020 · 50 comments
Closed
3 of 6 tasks

Support building Che on linux on Z (s390x) and Power (ppc64le) #16655

nickboldt opened this issue Apr 17, 2020 · 50 comments
Labels
area/devfile-registry area/plugin-registry kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.

Comments

@nickboldt
Copy link
Contributor

nickboldt commented Apr 17, 2020

Epic issue to collect all subtasks / needs for empowering Che 7.x to build on s390x and ppc64le.

Please add issues below.

@nickboldt nickboldt added kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. kind/task Internal things, technical debt, and to-do tasks to be performed. labels Apr 17, 2020
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Apr 17, 2020
@sleshchenko sleshchenko added area/devfile-registry area/plugin-registry and removed status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. kind/task Internal things, technical debt, and to-do tasks to be performed. labels Apr 17, 2020
@shahidhs-ibm
Copy link

@nickboldt In order to extend support to s390x, we will need to find suitable replacement for openjdk:8u242-jre-slim docker image located at https://github.com/eclipse/che/blob/master/dockerfiles/che/Dockerfile#L8
Following are some images which support multi-arch and can act as replacement:

  • adoptopenjdk:8u232-b09-jre-hotspot
  • registry.redhat.io/openjdk/openjdk-8-rhel8:latest
  • openjdk:8-jre-alpine

Kindly suggest. We have tested the above images and they work for Intel and s390x architectures. We'll create the PR after confirmation.

@benoitf
Copy link
Contributor

benoitf commented Apr 23, 2020

I like openjdk:8-jre-alpine because it is really multi-arch aware
But I know @skabashnyuk is working on moving to java11 so we should switch to something working for java11 as well.

@shahidhs-ibm
Copy link

From the online resources what I learned is that OpenJDK11 on Alpine is not officially supported and there are no plans for same in future.
Ref. docker-library/openjdk#403 (comment)
docker-library/openjdk#211 (comment)

@benoitf @nickboldt WDYT? Should we keep support for OpenJDK8 till this activity is complete?

@shahidhs-ibm
Copy link

@nickboldt your input? Shall we proceed with creating the PR as per the comment from Florent (openjdk:8-jre-alpine image)?

@skabashnyuk
Copy link
Contributor

@shahidhs-ibm what you can suggest as java11 alternative for Z (s390x) and Power (ppc64le) ?

@shahidhs-ibm
Copy link

@skabashnyuk We found openjdk:11.0.3-jre-slim which can serve the purpose. Also this image is Debian based which is similar to one which we are currently using for OpenJDK8. We have tested this image on s390x and have no issues so far. Also this image is multi-arch so should work for ppc64le as well.

@benoitf @nickboldt We're bit confused now on PR to raise. Should we create one with openjdk:11.0.3-jre-slim or with openjdk:8-jre-alpine as per the earlier discussion? We believe that answer to this will be based on your preferences, priority and timelines. What will you suggest?

@nickboldt
Copy link
Contributor Author

@shahidhs-ibm To be consistent w/ other Z and P images supported by RH, we might want to consider using openj9 instead of openjdk images.

@skabashnyuk
Copy link
Contributor

we might want to consider using openj9 instead of openjdk images

@nickboldt can we start thinking about that after 7.15 and Java 11 migration?

@ghatwala
Copy link

Agree @nickboldt - seems openj9 is preferred JVM for Z/P - https://projects.eclipse.org/projects/technology.openj9 .

@ghatwala
Copy link

ghatwala commented May 20, 2020

@nickboldt - for openj9 . Were u referring to adoptopenjdk's - OpenJDK + Eclipse OpenJ9 binaries built by AdoptOpenJDK images present at - https://hub.docker.com/_/adoptopenjdk to be used here ?

@prabhav-thali
Copy link

@nickboldt @benoitf @skabashnyuk
Since PR#16649 was merged, we observed that java11 image used for che-server does not have multi-arch support. Can it be replaced with multiarch support image?

@prabhav-thali
Copy link

Since PR#16649 was merged, we observed that java11 image used for che-server does not have multi-arch support. Can it be replaced with multiarch support image?

@nickboldt @benoitf @skabashnyuk any update?

@skabashnyuk
Copy link
Contributor

@skabashnyuk Even we have got same warnings on ppc64le and investigating the root cause.Not getting warnings immediately, after few hours it is showing.Is it similar at you end?

I'm sorry I don't understand your message. Did you able to find the root cause?

@bivasda1
Copy link

bivasda1 commented Jul 20, 2020

@skabashnyuk Even we have got same warnings on ppc64le and investigating the root cause.Not getting warnings immediately, after few hours it is showing.Is it similar at you end?

I'm sorry I don't understand your message. Did you able to find the root cause?

@skabashnyuk Still we are trying to find out the root cause.Have u got those warnings immediately after deployment of che-server?

@skabashnyuk
Copy link
Contributor

@skabashnyuk Still we are trying to find out the root cause.Have u got those warnings immediate after deployment of che-server?

yes

@bivasda1
Copy link

@skabashnyuk I am not getting warnings now and also able to login to che-server.Please find the below attached che-server logs.
che-server logs.txt.

@skabashnyuk
Copy link
Contributor

You do have this

20-Jul-2020 07:49:36.280 CONFIG [localhost-startStop-1] sun.util.locale.provider.LocaleServiceProviderPool.config A locale sensitive service provider returned null for a localized objects,  which should not happen.  provider: sun.util.cldr.CLDRCalendarDataProviderImpl@1ca5752f locale: en
20-Jul-2020 07:49:36.281 CONFIG [localhost-startStop-1] sun.util.locale.provider.LocaleServiceProviderPool.config A locale sensitive service provider returned null for a localized objects,  which should not happen.  provider: sun.util.cldr.CLDRCalendarDataProviderImpl@1ca5752f locale: en
20-Jul-2020 07:49:36.281 CONFIG [localhost-startStop-1] sun.util.locale.provider.LocaleServiceProviderPool.config A locale sensitive service provider returned null for a localized objects,  which should not happen.  provider: sun.util.cldr.CLDRCalendarDataProviderImpl@1ca5752f locale: en

if you wait a minute or two (5 maximum) do you see something like this?

failed getting JSON response from Kubernetes Client[masterUrl=https://17

@bivasda1
Copy link

bivasda1 commented Jul 20, 2020

@skabashnyuk

if you wait a minute or two (5 maximum) do you see something like this?

failed getting JSON response from Kubernetes Client[masterUrl=https://17

@skabashnyuk I have deployed 1 hour back.still not getting this warning,checking above mentioned warnings.

@prabhav-thali
Copy link

@skabashnyuk With the warnings I have mentioned in my comment, I don't see it affecting any functionality on dashboard. Also, found a similar issue #11571. It looks like these warnings existed since JDK8 and not caused due to JDK11 upgrade. Also on intel, observed that these warnings occur with current java11 image (openjdk:11-jre-slim) in Dockerfile.

So is it safe to ignore these warnings? Or should we check for any other alternate docker image?

@bivasda1
Copy link

bivasda1 commented Jul 23, 2020

You do have this

20-Jul-2020 07:49:36.280 CONFIG [localhost-startStop-1] sun.util.locale.provider.LocaleServiceProviderPool.config A locale sensitive service provider returned null for a localized objects,  which should not happen.  provider: sun.util.cldr.CLDRCalendarDataProviderImpl@1ca5752f locale: en
20-Jul-2020 07:49:36.281 CONFIG [localhost-startStop-1] sun.util.locale.provider.LocaleServiceProviderPool.config A locale sensitive service provider returned null for a localized objects,  which should not happen.  provider: sun.util.cldr.CLDRCalendarDataProviderImpl@1ca5752f locale: en
20-Jul-2020 07:49:36.281 CONFIG [localhost-startStop-1] sun.util.locale.provider.LocaleServiceProviderPool.config A locale sensitive service provider returned null for a localized objects,  which should not happen.  provider: sun.util.cldr.CLDRCalendarDataProviderImpl@1ca5752f locale: en

if you wait a minute or two (5 maximum) do you see something like this?

failed getting JSON response from Kubernetes Client[masterUrl=https://17

@skabashnyuk Now I am not getting these warnings in ppc64le. Few Waring's are there that should not affect to the functionality of che-server

Steps taken:

@skabashnyuk
Copy link
Contributor

Few Waring's are there that should not affect to the functionality of che-server

I believe we should not consider these warnings as not important. Have you able to identify the cause?

@bivasda1
Copy link

Few Waring's are there that should not affect to the functionality of che-server

I believe we should not consider these warnings as not important. Have you able to identify the cause?
@skabashnyuk I have tested with JAVA_DEBIAN_VERSION=11.0.6+1-1~ bpo9+1 as base (https://packages.debian.org/stretch-backports/java/openjdk-11-jre) and I am not getting any warnings with this particular version.
With JAVA_DEBIAN_VERSION=11.0.3+1-1~ bpo9+1 as base (https://packages.debian.org/stretch-backports/java/openjdk-11-jre-dcevm) I am getting those warnings.
I am still trying to figure out, if something got changed in these versions related to the warnings.

@bivasda1
Copy link

@skabashnyuk @gerrith3 @prabhav-thali
The openjdk:11-jre-slim-stretch image was built one and half years ago.
It uses openjdk-11-jdk-headless-11.0.3+1-1~bpo9+1.

Dockerfile_oenjdk

Dockerfile path of above docker image: https://github.com/docker-library/openjdk/blob/178c542fbb93a8f8a42e331b73a1214c9d8ba81d/11/jre/slim/Dockerfile
When we tried to recreate the image using below Dockerfile, we got an error.

11 0 3

This happened because, java version 11.0.3+1-1~ bpo9+1 is no longer available and has been replaced by version 11.0.6_10-1~ bpo9+1
Replacing the value 11.0.3+1-1~ bpo9+1 with 11.0.6+10-1~ bpo9+1, in the above mentioned Dockerfile, we were able to re-create the openjdk:11-jre-slim-stretch image.
Now, using this freshly created openjdk:11-jre-slim-stretch image (having openjdk-11-jdk- headless-11.0.6+10-1~ bpo9+1), we created che-server image.
When we tested this new che-server image, we are not getting any warnings as observed earlier with older openjdk:11-jre-slim-stretch image.
Attached is the server log.
che-server log-.txt

Hence we feel that if we have openjdk:11-jre-slim-stretch image available based on latest Java package, then we can create a multi-arch che-server image without any warnings.

@prabhav-thali
Copy link

@bivasda1 I have tested the changes on s390x. No warnings were observed after the deployment of che-server. Also, observed an additional change to be incorporated in Dockerfile (which seems to be architecture specific) as mentioned below :

- FROM debian:stretch-slim
+ FROM s390x/debian:stretch-slim

@skabashnyuk any update?

@skabashnyuk
Copy link
Contributor

@prabhav-thali I'm sorry I didn't understand the question to me.

@prabhav-thali
Copy link

@skabashnyuk any further update on jdk11 base image change?

@skabashnyuk
Copy link
Contributor

skabashnyuk commented Sep 2, 2020

@prabhav-thali I have none at this moment. I didn't understand from @bivasda1 explanation the reason of errors with 11-jre-slim-stretch or proposal of alternative image

@skabashnyuk
Copy link
Contributor

@ghatwala
Copy link

ghatwala commented Sep 7, 2020

@bivasda1
Copy link

bivasda1 commented Sep 7, 2020

@ghatwala ok sure

@prabhav-thali
Copy link

prabhav-thali commented Sep 9, 2020

@skabashnyuk After using s390x/openjdk:11-jre-slim, observing same warnings in browser console and che pod logs as I had mentioned in this comment.

Env details :
platform: minikube 1.7.2 (with k8s v1.16.1)
installer: helm v3.1.1

With the warnings I have mentioned in my comment, I don't see it affecting any functionality on dashboard. Also, found a similar issue #11571. It looks like these warnings existed since JDK8 and not caused due to JDK11 upgrade.

@skabashnyuk Could you please confirm this at your end?

@skabashnyuk
Copy link
Contributor

@prabhav-thali #16655 (comment) that is acceptable. Overall functionality is working?

@prabhav-thali
Copy link

@skabashnyuk As currently we don't have language specific images available for s390x, we were not able to test workspace creation. However the rest functionality looks ok to me and can say its working.

@skabashnyuk
Copy link
Contributor

I'm talking about using that image for che-server, not for workspaces.

@prabhav-thali
Copy link

@skabashnyuk we tested s390x/openjdk:11-jre-slim image for che-server and warnings were seen in pod logs. However, no functionality loss is observed.

@benoitf
Copy link
Contributor

benoitf commented Sep 15, 2020

I've opened #17866 to discuss the usage of adoptopenjdk/openjdk11:jre with multi-arch

@benoitf
Copy link
Contributor

benoitf commented Oct 1, 2020

Usage of adoptopenjdk/openjdk11 has been merged so it should fix the multi-arch build of che-server image

@che-bot
Copy link
Contributor

che-bot commented Apr 6, 2021

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 6, 2021
@che-bot che-bot closed this as completed Apr 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/devfile-registry area/plugin-registry kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

No branches or pull requests

9 participants