-
Bug
-
Resolution: Unresolved
-
Major
Java17(actually JDK14 but 17 is the LTS) removed the mandatory requirement that MD5 needed to be a supported MessageDigest.
If you attempt to start Jenkins on a JVM that does not have MD5 available it ends in a big mess.
2024-02-09 15:02:43.444+0000 [id=25] SEVERE hudson.util.BootFailure#publish: Failed to initialize Jenkins
java.security.NoSuchAlgorithmException: MD5 MessageDigest not available
at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
at java.base/java.security.MessageDigest.getInstance(MessageDigest.java:185)
at hudson.Util.getMd5(Util.java:664)
at hudson.Util.getDigestOf(Util.java:640)
Caused: java.io.IOException: MD5 not installed
at hudson.Util.getDigestOf(Util.java:648)
at hudson.Util.getDigestOf(Util.java:670)
Caused: java.lang.Error
at hudson.Util.getDigestOf(Util.java:672)
at jenkins.model.Jenkins.computeVersion(Jenkins.java:5556)
at jenkins.model.Jenkins.<init>(Jenkins.java:926)
at hudson.model.Hudson.<init>(Hudson.java:86)
at hudson.model.Hudson.<init>(Hudson.java:82)
at hudson.WebAppMain$3.run(WebAppMain.java:248)
Caused: hudson.util.HudsonFailedToLoad
at hudson.WebAppMain$3.run(WebAppMain.java:262)
Exception in thread "Jenkins initialization thread" java.lang.Error: java.io.IOException: MD5 not installed
at hudson.Util.getDigestOf(Util.java:672)
at jenkins.model.Jenkins.computeVersion(Jenkins.java:5556)
at jenkins.model.Jenkins.<init>(Jenkins.java:926)
at hudson.model.Hudson.<init>(Hudson.java:86)
at hudson.model.Hudson.<init>(Hudson.java:82)
at hudson.WebAppMain$3.run(WebAppMain.java:248)
Caused by: java.io.IOException: MD5 not installed
at hudson.Util.getDigestOf(Util.java:648)
at hudson.Util.getDigestOf(Util.java:670)
... 5 more
Caused by: java.security.NoSuchAlgorithmException: MD5 MessageDigest not available
at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
at java.base/java.security.MessageDigest.getInstance(MessageDigest.java:185)
at hudson.Util.getMd5(Util.java:664)
at hudson.Util.getDigestOf(Util.java:640)
... 6 more
[JENKINS-72696] Jenkins can not start on a TCK compliant JVM that does not have MD5 support
Labels | New: java17-compatibility |
Description |
Original:
[Java17|https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/security/MessageDigest.html ](actually [JDK14|https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/security/MessageDigest.html] but 17 is the LTS) removed the mandatory requirement that `MD5` needed to be a supported {{MessageDigest}}.
If you attempt to start Jenkins on a JVM that does not have MD5 available it ends in a big mess. {code} 2024-02-09 15:02:43.444+0000 [id=25] SEVERE hudson.util.BootFailure#publish: Failed to initialize Jenkins java.security.NoSuchAlgorithmException: MD5 MessageDigest not available at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:159) at java.base/java.security.MessageDigest.getInstance(MessageDigest.java:185) at hudson.Util.getMd5(Util.java:664) at hudson.Util.getDigestOf(Util.java:640) Caused: java.io.IOException: MD5 not installed at hudson.Util.getDigestOf(Util.java:648) at hudson.Util.getDigestOf(Util.java:670) Caused: java.lang.Error at hudson.Util.getDigestOf(Util.java:672) at jenkins.model.Jenkins.computeVersion(Jenkins.java:5556) at jenkins.model.Jenkins.<init>(Jenkins.java:926) at hudson.model.Hudson.<init>(Hudson.java:86) at hudson.model.Hudson.<init>(Hudson.java:82) at hudson.WebAppMain$3.run(WebAppMain.java:248) Caused: hudson.util.HudsonFailedToLoad at hudson.WebAppMain$3.run(WebAppMain.java:262) Exception in thread "Jenkins initialization thread" java.lang.Error: java.io.IOException: MD5 not installed at hudson.Util.getDigestOf(Util.java:672) at jenkins.model.Jenkins.computeVersion(Jenkins.java:5556) at jenkins.model.Jenkins.<init>(Jenkins.java:926) at hudson.model.Hudson.<init>(Hudson.java:86) at hudson.model.Hudson.<init>(Hudson.java:82) at hudson.WebAppMain$3.run(WebAppMain.java:248) Caused by: java.io.IOException: MD5 not installed at hudson.Util.getDigestOf(Util.java:648) at hudson.Util.getDigestOf(Util.java:670) ... 5 more Caused by: java.security.NoSuchAlgorithmException: MD5 MessageDigest not available at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:159) at java.base/java.security.MessageDigest.getInstance(MessageDigest.java:185) at hudson.Util.getMd5(Util.java:664) at hudson.Util.getDigestOf(Util.java:640) ... 6 more {code} |
New:
[Java17|https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/security/MessageDigest.html ](actually [JDK14|https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/security/MessageDigest.html] but 17 is the LTS) removed the mandatory requirement that {{MD5}} needed to be a supported {{MessageDigest}}.
If you attempt to start Jenkins on a JVM that does not have MD5 available it ends in a big mess. {code} 2024-02-09 15:02:43.444+0000 [id=25] SEVERE hudson.util.BootFailure#publish: Failed to initialize Jenkins java.security.NoSuchAlgorithmException: MD5 MessageDigest not available at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:159) at java.base/java.security.MessageDigest.getInstance(MessageDigest.java:185) at hudson.Util.getMd5(Util.java:664) at hudson.Util.getDigestOf(Util.java:640) Caused: java.io.IOException: MD5 not installed at hudson.Util.getDigestOf(Util.java:648) at hudson.Util.getDigestOf(Util.java:670) Caused: java.lang.Error at hudson.Util.getDigestOf(Util.java:672) at jenkins.model.Jenkins.computeVersion(Jenkins.java:5556) at jenkins.model.Jenkins.<init>(Jenkins.java:926) at hudson.model.Hudson.<init>(Hudson.java:86) at hudson.model.Hudson.<init>(Hudson.java:82) at hudson.WebAppMain$3.run(WebAppMain.java:248) Caused: hudson.util.HudsonFailedToLoad at hudson.WebAppMain$3.run(WebAppMain.java:262) Exception in thread "Jenkins initialization thread" java.lang.Error: java.io.IOException: MD5 not installed at hudson.Util.getDigestOf(Util.java:672) at jenkins.model.Jenkins.computeVersion(Jenkins.java:5556) at jenkins.model.Jenkins.<init>(Jenkins.java:926) at hudson.model.Hudson.<init>(Hudson.java:86) at hudson.model.Hudson.<init>(Hudson.java:82) at hudson.WebAppMain$3.run(WebAppMain.java:248) Caused by: java.io.IOException: MD5 not installed at hudson.Util.getDigestOf(Util.java:648) at hudson.Util.getDigestOf(Util.java:670) ... 5 more Caused by: java.security.NoSuchAlgorithmException: MD5 MessageDigest not available at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:159) at java.base/java.security.MessageDigest.getInstance(MessageDigest.java:185) at hudson.Util.getMd5(Util.java:664) at hudson.Util.getDigestOf(Util.java:640) ... 6 more {code} |
Summary | Original: Jenknis can not start on a TCK compliant JVM that does not have MD5 supprt | New: Jenkins can not start on a TCK compliant JVM that does not have MD5 support |
Labels | Original: java17-compatibility | New: java17-compatibility jdk jdk-17 |
Priority | Original: Critical [ 2 ] | New: Major [ 3 ] |
obviously this is just the outer layer of the onion, once you get past this, there is various other code using MD5 (either directly or indirectly via Util.getDigestOf()