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

When using multiple updateSites, tool installer download fails if one UC is missing installers

      • I have multiple update sites, which contain different plugins
      • One of sites ("my-embedded-update-site" in my case) does not provide neither Gradle plugin nor its tool installers
      • During the plugin installation Jenkins tries to download the tool installer from this site and fails with error
      • Tool installer is missing after it

      Jenkins should not fail the ToolInstaller download if one plugin update site provides such tool installer.

      Log example:

      INFO: Attempting to dynamic load /Users/nenashev/Documents/my-war/tmp/plugins/gradle.jpi
      May 17, 2016 1:09:33 PM hudson.model.DownloadService$Downloadable updateNow
      WARNING: Could not load json from file:/Users/nenashev/Documents/my-war/tmp/my-embedded-update-site/updates/hudson.plugins.gradle.GradleInstaller.json
      java.io.FileNotFoundException: /Users/nenashev/Documents/my-war/tmp/my-embedded-update-site/updates/hudson.plugins.gradle.GradleInstaller.json.html (No such file or directory)
      	at java.io.FileInputStream.open0(Native Method)
      	at java.io.FileInputStream.open(FileInputStream.java:195)
      	at java.io.FileInputStream.<init>(FileInputStream.java:138)
      	at java.io.FileInputStream.<init>(FileInputStream.java:93)
      	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
      	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
      	at hudson.model.DownloadService.loadJSONHTML(DownloadService.java:189)
      	at hudson.model.DownloadService$Downloadable.updateNow(DownloadService.java:403)
      	at hudson.model.DownloadService$DownloadableListener.onChange(DownloadService.java:231)
      	at hudson.ExtensionList.fireOnChangeListeners(ExtensionList.java:328)
      	at hudson.ExtensionList.add(ExtensionList.java:246)
      	at hudson.tools.DownloadFromUrlInstaller$DescriptorImpl.<init>(DownloadFromUrlInstaller.java:127)
      	at hudson.plugins.gradle.GradleInstaller$DescriptorImpl.<init>(GradleInstaller.java:18)
      	at hudson.plugins.gradle.GradleInstaller$DescriptorImpl$$FastClassByGuice$$7d2e75b8.newInstance(<generated>)
      	at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
      	at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61)
      	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:108)
      	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:88)
      	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:269)
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1058)
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
      	at hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1.get(ExtensionFinder.java:424)
      	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
      	at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:1005)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1051)
      	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:1001)
      	at hudson.ExtensionFinder$GuiceFinder._find(ExtensionFinder.java:386)
      	at hudson.ExtensionFinder$GuiceFinder.access$000(ExtensionFinder.java:232)
      	at hudson.ExtensionFinder$GuiceFinder$3.find(ExtensionFinder.java:341)
      	at jenkins.ExtensionComponentSet$3.find(ExtensionComponentSet.java:98)
      	at jenkins.ExtensionComponentSet$1.find(ExtensionComponentSet.java:70)
      	at hudson.ExtensionList.load(ExtensionList.java:356)
      	at hudson.ExtensionList.refresh(ExtensionList.java:312)
      	at jenkins.model.Jenkins.refreshExtensions(Jenkins.java:2416)
      	at hudson.PluginManager.dynamicLoad(PluginManager.java:824)
      	at hudson.PluginManager.dynamicLoad(PluginManager.java:772)
      	at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:1832)
      	at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1593)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:110)
      	at java.lang.Thread.run(Thread.java:745)
      

          [JENKINS-34880] When using multiple updateSites, tool installer download fails if one UC is missing installers

          Code changed in jenkins
          User: valentina
          Path:
          core/src/main/java/hudson/model/DownloadService.java
          http://jenkins-ci.org/commit/jenkins/dce35f31d8f1f29b00b468c0c6df27bd122d214f
          Log:
          [FIXED JENKINS-34880] do not show warnings if tool installer is present in at least 1 update site (#2361)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: valentina Path: core/src/main/java/hudson/model/DownloadService.java http://jenkins-ci.org/commit/jenkins/dce35f31d8f1f29b00b468c0c6df27bd122d214f Log: [FIXED JENKINS-34880] do not show warnings if tool installer is present in at least 1 update site (#2361)

          Oleg Nenashev added a comment -

          Released as Jenkins-2.6

          Oleg Nenashev added a comment - Released as Jenkins-2.6

          We experience the same problem in version 1.651.3, could the solution (JENKINS-34880) be implemented there as well?

          Regards /Thomas

          Thomas Wikström added a comment - We experience the same problem in version 1.651.3, could the solution ( JENKINS-34880 ) be implemented there as well? Regards /Thomas

          Oleg Nenashev added a comment -

          Hi thomas_w Due to whatever reason this fix has not been backported to 1.651.3
          Currently this stabilization branch is closed. The next LTS release is 2.7.1, which is expected to be published today or tomorrow. This release will contain the fix.

          Oleg Nenashev added a comment - Hi thomas_w Due to whatever reason this fix has not been backported to 1.651.3 Currently this stabilization branch is closed. The next LTS release is 2.7.1, which is expected to be published today or tomorrow. This release will contain the fix.

            varmenise valentina armenise
            oleg_nenashev Oleg Nenashev
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: