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

Plugins should be updated in dependency order, not alphabetically

XMLWordPrintable

      The plugins are currently updated in the alphabetical order, which can lead to problems if an earlier plugin (A) is dependent on a later plugin (B). If the A is updated, and the newer version expects the B plugin to be updated, too, but the update of the B plugin fails (for any reasons, e.g. network instability), the whole Jenkins may fail to (re)start.

      Just happened to me today - the Git plugin has been updated to 5.8.0, which requires SCM API plugin version 710 or newer, but the update of SCM API has failed (alongside of some other plugins):

      2025-10-09 07:03:44.294+0000 [id=602866]        SEVERE  h.model.UpdateCenter$DownloadJob#run: Failed to install scm-api
      java.net.SocketTimeoutException: Read timed out
              at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:278)
              at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:304)
              at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:346)
              at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:796)
              at java.base/java.net.Socket$SocketInputStream.read(Socket.java:1099)
              at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:489)
              at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:483)
              at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
              at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1461)
              at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1066)
              at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:291)
              at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:347)
              at java.base/java.io.BufferedInputStream.implRead(BufferedInputStream.java:420)
              at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:399)
              at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:827)
              at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:759)
              at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1705)
              at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1614)
              at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223)
              at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1365)
      Caused: java.io.IOException: Failed to load https://updates.jenkins.io/download/plugins/scm-api/712.v8846fdd68c88/scm-api.hpi to /local0/biologics/jenkins-core/jenkins_home/plugins/scm-api.jpi.tmp
              at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1380)
      Caused: java.io.IOException: Failed to download from https://updates.jenkins.io/download/plugins/scm-api/712.v8846fdd68c88/scm-api.hpi → https://get.jenkins.io/plugins/scm-api/712.v8846fdd68c88/scm-api.hpi
              at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1407)
              at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:2059)
              at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2387)
              at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:2033)
              at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
              at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
              at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121)
              at java.base/java.lang.Thread.run(Thread.java:1583) 

      This led to whole Jenkins failing to start, and I had to manually update the SCM API plugin via CLI plugin manager (this luckily worked).

       

            stopalopa Natasha Stopa
            jchochol Jozef Chocholacek
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: