-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major
-
Component/s: openjdk-native-plugin
-
None
-
Environment:Rocky Linux 8 openjdk-native-plugin v1.6
In Jenkins I have configured two JDKs (JDK-17 and JDK-11 using the openjdk-native plugin.
However when running a test pipeline changing the JDK fails.
The pipeline looks like this
pipeline {
agent any
options {
ansiColor('xterm')
buildDiscarder(logRotator(numToKeepStr: '3'))
}
stages {
stage('Check Java 17') {
tools {
jdk 'JDK-17'
}
steps {
echo "========================================================"
echo "== JDK-17"
sh 'java -version'
}
}
stage('Check Java 11') {
tools {
jdk 'JDK-11'
}
steps {
echo "========================================================"
echo "== JDK-11"
sh 'java -version'
}
}
stage('Check native Java ') {
steps {
echo "========================================================"
echo "== JDK native"
sh 'java -version'
}
}
}
}
The console Output looks like this
Started by user Frank Graf [Pipeline] Start of Pipeline [Pipeline] node Running on abmbubdlje002 in /var/lib/jenkins/agent/workspace/JDK Testdrive [Pipeline] { [Pipeline] ansiColor [Pipeline] { [Pipeline] stage [Pipeline] { (Check Java 17) [Pipeline] tool Checking OpenJDK installation... $ rpm -q java-17-openjdk java-17-openjdk-17.0.6.0.10-3.el8_7.x86_64 Checking OpenJDK installation... $ rpm -q java-17-openjdk-devel java-17-openjdk-devel-17.0.6.0.10-3.el8_7.x86_64 Switching to java-17-openjdk using alternatives ... $ sudo alternatives --set java /usr/lib/jvm/jre-17-openjdk/bin/java /usr/lib/jvm/jre-17-openjdk/bin/java has not been configured as an alternative for java [OpenJDK ERROR] Switching OpenJDK via atlernatives to java-17-openjdk failed! /usr/bin may not exists or point to different java version! [Pipeline] envVarsForTool Checking OpenJDK installation... $ rpm -q java-17-openjdk java-17-openjdk-17.0.6.0.10-3.el8_7.x86_64 Checking OpenJDK installation... $ rpm -q java-17-openjdk-devel java-17-openjdk-devel-17.0.6.0.10-3.el8_7.x86_64 Switching to java-17-openjdk using alternatives ... $ sudo alternatives --set java /usr/lib/jvm/jre-17-openjdk/bin/java /usr/lib/jvm/jre-17-openjdk/bin/java has not been configured as an alternative for java [OpenJDK ERROR] Switching OpenJDK via atlernatives to java-17-openjdk failed! /usr/bin may not exists or point to different java version! [Pipeline] withEnv [Pipeline] { [Pipeline] echo ======================================================== [Pipeline] echo == JDK-17 [Pipeline] sh + java -version openjdk version "17.0.6" 2023-01-17 LTS OpenJDK Runtime Environment (Red_Hat-17.0.6.0.10-3.el8_7) (build 17.0.6+10-LTS) OpenJDK 64-Bit Server VM (Red_Hat-17.0.6.0.10-3.el8_7) (build 17.0.6+10-LTS, mixed mode, sharing) [Pipeline] } [Pipeline] // withEnv [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Check Java 11) [Pipeline] tool Checking OpenJDK installation... $ rpm -q java-11-openjdk java-11-openjdk-11.0.18.0.10-2.el8_7.x86_64 Checking OpenJDK installation... $ rpm -q java-11-openjdk-devel java-11-openjdk-devel-11.0.18.0.10-2.el8_7.x86_64 Switching to java-11-openjdk using alternatives ... $ sudo alternatives --set java /usr/lib/jvm/jre-11-openjdk/bin/java /usr/lib/jvm/jre-11-openjdk/bin/java has not been configured as an alternative for java [OpenJDK ERROR] Switching OpenJDK via atlernatives to java-11-openjdk failed! /usr/bin may not exists or point to different java version! [Pipeline] envVarsForTool Checking OpenJDK installation... $ rpm -q java-11-openjdk java-11-openjdk-11.0.18.0.10-2.el8_7.x86_64 Checking OpenJDK installation... $ rpm -q java-11-openjdk-devel java-11-openjdk-devel-11.0.18.0.10-2.el8_7.x86_64 Switching to java-11-openjdk using alternatives ... $ sudo alternatives --set java /usr/lib/jvm/jre-11-openjdk/bin/java /usr/lib/jvm/jre-11-openjdk/bin/java has not been configured as an alternative for java [OpenJDK ERROR] Switching OpenJDK via atlernatives to java-11-openjdk failed! /usr/bin may not exists or point to different java version! [Pipeline] withEnv [Pipeline] { [Pipeline] echo ======================================================== [Pipeline] echo == JDK-11 [Pipeline] sh + java -version openjdk version "17.0.6" 2023-01-17 LTS OpenJDK Runtime Environment (Red_Hat-17.0.6.0.10-3.el8_7) (build 17.0.6+10-LTS) OpenJDK 64-Bit Server VM (Red_Hat-17.0.6.0.10-3.el8_7) (build 17.0.6+10-LTS, mixed mode, sharing) [Pipeline] } [Pipeline] // withEnv [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Check native Java ) [Pipeline] echo ======================================================== [Pipeline] echo == JDK native [Pipeline] sh + java -version openjdk version "17.0.6" 2023-01-17 LTS OpenJDK Runtime Environment (Red_Hat-17.0.6.0.10-3.el8_7) (build 17.0.6+10-LTS) OpenJDK 64-Bit Server VM (Red_Hat-17.0.6.0.10-3.el8_7) (build 17.0.6+10-LTS, mixed mode, sharing) [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // ansiColor [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline Finished: SUCCESS
The /etc/suoders.d/jenkins config is set to
#Defaults requiretty User_Alias JENKINS = jenkins Cmnd_Alias OPENJDK_INSTALL = /usr/sbin/alternatives, /usr/bin/yum
The problem seems to be with alternatives, since even running the command as root fails
DEV [root@abmbubdlje002 ~]$ sudo alternatives --set java /usr/lib/jvm/jre-11-openjdk/bin/java /usr/lib/jvm/jre-11-openjdk/bin/java has not been configured as an alternative for java DEV [root@abmbubdlje002 ~]$ alternatives --set java /usr/lib/jvm/jre-11-openjdk/bin/java /usr/lib/jvm/jre-11-openjdk/bin/java has not been configured as an alternative for java