Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1848611

Summary: openshift3/jenkins-agent-maven-35-rhel7:v3.11.232-3 includes JDK 11 and is missing JDK 8: breaking change
Product: OpenShift Container Platform Reporter: Frederic Giloux <fgiloux>
Component: JenkinsAssignee: Akram Ben Aissi <abenaiss>
Status: CLOSED ERRATA QA Contact: Jitendar Singh <jitsingh>
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.11.0CC: abenaiss, aos-bugs, mtleilia, pbhattac, scuppett, vbobade
Target Milestone: ---   
Target Release: 3.11.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-08-26 22:44:37 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Frederic Giloux 2020-06-18 15:41:47 UTC
Description of problem:
openshift3/jenkins-agent-maven-35-rhel7:v3.11.232-3 has just been pushed to registry.redhat.io. This version includes now JDK 11 instead of JDK 8.
Although it is very desirable and has been a long ask to have a Jenkins slave with JDK 11 this is a breaking change that caught users by surprise.
Looking at /usr/local/bin/configure-agent inside the image there is:
 
# javaC version is by default set to java-11. If a regression is faced, we must inject USE_JAVAC_VERSION=java-1.8.0 into the container agent so that the agent can use it
export JAVAC_VERSION=${USE_JAVAC_VERSION:=java-11}

but looking at the alternative I don't see java 8:
bash-4.2$ alternatives --display javac 
javac - status is manual.
 link currently points to /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/javac
/usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/javac - family java-11-openjdk.x86_64 priority 1
 slave appletviewer: (null)
 slave extcheck: (null)
 slave idlj: (null)
 slave jaotc: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jaotc
 slave jar: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jar
 slave jarsigner: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jarsigner
 slave javadoc: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/javadoc
 slave javah: (null)
 slave javap: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/javap
 slave jcmd: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jcmd
 slave jconsole: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jconsole
 slave jdb: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jdb
 slave jdeprscan: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jdeprscan
 slave jdeps: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jdeps
 slave jfr: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jfr
 slave jhat: (null)
 slave jhsdb: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jhsdb
 slave jimage: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jimage
 slave jinfo: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jinfo
 slave jlink: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jlink
 slave jmap: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jmap
 slave jmod: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jmod
 slave jps: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jps
 slave jrunscript: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jrunscript
 slave jsadebugd: (null)
 slave jshell: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jshell
 slave jstack: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jstack
 slave jstat: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jstat
 slave jstatd: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/jstatd
 slave native2ascii: (null)
 slave rmic: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/rmic
 slave schemagen: (null)
 slave serialver: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/serialver
 slave wsgen: (null)
 slave wsimport: (null)
 slave xjc: (null)
 slave java_sdk_exports: (null)
 slave java_sdk: /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64
 slave appletviewer.1.gz: (null)
 slave extcheck.1.gz: (null)
 slave idlj.1.gz: (null)
 slave jar.1.gz: /usr/share/man/man1/jar-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jarsigner.1.gz: /usr/share/man/man1/jarsigner-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave javac.1.gz: /usr/share/man/man1/javac-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave javadoc.1.gz: /usr/share/man/man1/javadoc-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave javah.1.gz: (null)
 slave javap.1.gz: /usr/share/man/man1/javap-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jcmd.1.gz: /usr/share/man/man1/jcmd-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jconsole.1.gz: /usr/share/man/man1/jconsole-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jdb.1.gz: /usr/share/man/man1/jdb-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jdeps.1.gz: /usr/share/man/man1/jdeps-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jhat.1.gz: (null)
 slave jinfo.1.gz: /usr/share/man/man1/jinfo-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jmap.1.gz: /usr/share/man/man1/jmap-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jps.1.gz: /usr/share/man/man1/jps-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jrunscript.1.gz: /usr/share/man/man1/jrunscript-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jsadebugd.1.gz: (null)
 slave jstack.1.gz: /usr/share/man/man1/jstack-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jstat.1.gz: /usr/share/man/man1/jstat-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave jstatd.1.gz: /usr/share/man/man1/jstatd-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave native2ascii.1.gz: (null)
 slave rmic.1.gz: /usr/share/man/man1/rmic-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave schemagen.1.gz: (null)
 slave serialver.1.gz: /usr/share/man/man1/serialver-java-11-openjdk-11.0.7.10-4.el7_8.x86_64.1.gz
 slave wsgen.1.gz: (null)
 slave wsimport.1.gz: (null)
 slave xjc.1.gz: (null)
Current `best' version is /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/javac.

Also it would be preferable to have it the other way around to avoid breaking existing builds. Example: https://stackoverflow.com/questions/43574426/how-to-resolve-java-lang-noclassdeffounderror-javax-xml-bind-jaxbexception-in-j

Version-Release number of selected component (if applicable):
v3.11.232-3

How reproducible:
Always

Steps to Reproduce:
1. podman run --name=maven-slave -it registry.redhat.io/openshift3/jenkins-agent-maven-35-rhel7 /bin/bash

Actual results:
Container with JDK 11

Expected results:
Container with JDK 11 & JDK 8, defaulting to JDK 8.

Additional info:

Comment 16 Jitendar Singh 2020-08-13 08:46:27 UTC
VERIFIED

✘ jsingh@localhost  ~/go/src/github.com/redhat-developer/jenkins   jenkins-test ●✚  oc rsh maven-tkb34
sh-4.2$ update-alternatives --config java
There are 4 programs which provide 'java'.
  Selection    Command
-----------------------------------------------
   1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.x86_64/bin/java)
   2           java-11-openjdk.i386 (/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el7_8.i386/bin/java)
*+ 3           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre/bin/java)
   4           java-1.8.0-openjdk.i386 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.i386/jre/bin/java)


used nightly- https://brewweb.engineering.redhat.com/brew/buildinfo?buildID=1286526

Trigred the maven pipeline job using the above nightly and everything works fine.

Comment 18 errata-xmlrpc 2020-08-26 22:44:37 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (OpenShift Container Platform 3.11.272 bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:3245