Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-72696

Jenkins can not start on a TCK compliant JVM that does not have MD5 support

      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

          James Nord created issue -
          James Nord made changes -
          Labels New: java17-compatibility
          James Nord made changes -
          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}
          James Nord made changes -
          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

          James Nord added a comment -

          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()

          James Nord added a comment - 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()
          James Nord made changes -
          Labels Original: java17-compatibility New: java17-compatibility jdk jdk-17
          James Nord made changes -
          Priority Original: Critical [ 2 ] New: Major [ 3 ]

            Unassigned Unassigned
            teilo James Nord
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: