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

Tried proxying io.fabric8.jenkins.openshiftsync.GlobalPluginConfiguration to support a circular dependency, but it is not an interface.

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • openshift-sync-plugin
    • None

      Hello developers,

      we can see in our logfile at the startup of our Jenkins following warning:

      WARNING: Failed to instantiate Key[type=io.fabric8.jenkins.openshiftsync.GlobalPluginConfiguration, annotation=[none]]; skipping this component
      com.google.inject.ProvisionException: Unable to provision, see the following errors:
      
      1) Tried proxying io.fabric8.jenkins.openshiftsync.GlobalPluginConfiguration to support a circular dependency, but it is not an interface.
      
      1 error
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:52)
      	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
      	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$2$1.call(InjectorImpl.java:1016)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
      	at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
      	at hudson.ExtensionFinder$GuiceFinder._find(ExtensionFinder.java:386)
      	at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:377)
      	at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:472)
      	at hudson.ExtensionList.load(ExtensionList.java:365)
      	at hudson.ExtensionList.ensureLoaded(ExtensionList.java:303)
      	at hudson.ExtensionList.getComponents(ExtensionList.java:168)
      	at hudson.DescriptorExtensionList.load(DescriptorExtensionList.java:191)
      	at hudson.ExtensionList.ensureLoaded(ExtensionList.java:303)
      	at hudson.ExtensionList.iterator(ExtensionList.java:157)
      	at hudson.model.User.load(User.java:201)
      	at hudson.model.User.<init>(User.java:155)
      	at hudson.model.User.getOrCreate(User.java:463)
      	at hudson.model.User.getById(User.java:534)
      	at hudson.model.User.get(User.java:518)
      	at hudson.model.User.current(User.java:502)
      	at hudson.plugins.jobConfigHistory.PluginUtils.isUserExcluded(PluginUtils.java:136)
      	at hudson.plugins.jobConfigHistory.JobConfigHistorySaveableListener.onChange(JobConfigHistorySaveableListener.java:52)
      	at hudson.model.listeners.SaveableListener.fireOnChange(SaveableListener.java:81)
      	at hudson.model.Descriptor.save(Descriptor.java:872)
      	at io.fabric8.jenkins.openshiftsync.GlobalPluginConfiguration.<init>(GlobalPluginConfiguration.java:62)
      	at io.fabric8.jenkins.openshiftsync.GlobalPluginConfiguration$$FastClassByGuice$$7bc306ea.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:105)
      	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
      	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
      	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$2$1.call(InjectorImpl.java:1016)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
      	at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
      	at hudson.ExtensionFinder$GuiceFinder._find(ExtensionFinder.java:386)
      	at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:377)
      	at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:472)
      	at hudson.ExtensionList.load(ExtensionList.java:365)
      	at hudson.ExtensionList.ensureLoaded(ExtensionList.java:303)
      	at hudson.ExtensionList.iterator(ExtensionList.java:157)
      	at jenkins.model.Jenkins.getDescriptorByType(Jenkins.java:1519)
      	at jenkins.plugins.nodejs.NodeJSPlugin.setInstallations(NodeJSPlugin.java:80)
      	at jenkins.plugins.nodejs.NodeJSPlugin.postInitialize(NodeJSPlugin.java:46)
      	at hudson.PluginManager$2$1$2.run(PluginManager.java:543)
      	at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
      	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
      	at jenkins.model.Jenkins$7.runTask(Jenkins.java:1064)
      	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
      	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      

      How can wew avoid this ?

      Thank you for your help and support.

      Best regards
      Sascha

        1. openshift-sync.hpi
          7.90 MB
        2. jenkins-7-s62nq.log
          41 kB
        3. jenkins-11.log
          47 kB
        4. jenkins-10.log
          44 kB

          [JENKINS-42276] Tried proxying io.fabric8.jenkins.openshiftsync.GlobalPluginConfiguration to support a circular dependency, but it is not an interface.

          Sascha Vujevic created issue -
          Gabe Montero made changes -
          Assignee Original: Jimmi Dyson [ jimmi ] New: Gabe Montero [ gmontero ]

          Gabe Montero added a comment -

          So if I'm parsing some of the similar issues correctly, such as https://github.com/SonarSource/sonar-scanner-jenkins/pull/42

          and https://github.com/jenkinsci/sonarqube-plugin/commit/20431dcd80cf34a674db1197e90e13a160865def, it looks like

          the calling of save() in the default contstructor is the issue.

          At first blush, it does seem unnecessary.  I'll test a bit with it removed, and if things look OK, will cut a new plugin version with

          this change.

          Gabe Montero added a comment - So if I'm parsing some of the similar issues correctly, such as https://github.com/SonarSource/sonar-scanner-jenkins/pull/42 and https://github.com/jenkinsci/sonarqube-plugin/commit/20431dcd80cf34a674db1197e90e13a160865def, it looks like the calling of save() in the default contstructor is the issue. At first blush, it does seem unnecessary.  I'll test a bit with it removed, and if things look OK, will cut a new plugin version with this change.

          I'm also having this exact problem and I'm not sure why it's happening now. I have several deployments on OpenShift (3.6.0 & 3.6.1) recently and it worked at plugin version 0.1.23, but not my newly built Jenkins containers are failing with this same error at that SAME version. Could this be some sort of conflict with another plugin?

          Deven Phillips added a comment - I'm also having this exact problem and I'm not sure why it's happening now. I have several deployments on OpenShift (3.6.0 & 3.6.1) recently and it worked at plugin version 0.1.23, but not my newly built Jenkins containers are failing with this same error at that SAME version. Could this be some sort of conflict with another plugin?
          Daniel Beck made changes -
          Labels Original: 2.0 jenkins plugin New: jenkins plugin
          Daniel Beck made changes -
          Labels Original: jenkins plugin

          New information... I downgraded to a MUCH earlier set of plugins and then started upgrading plugins one at a time to see when things would break...

          As weird as it sounds, I could upgrade the `kubernetes` plugin and the `openshift-(sync|login|pieline)` plugins to the latest with no issue. Then, I upgraded my `blueocean` and `blueocean-pipeline-editor` plugins to 1.3.0 and the error appeared! I'll try to dig in and discover what the connection might be and report back.

           

          Deven Phillips added a comment - New information... I downgraded to a MUCH earlier set of plugins and then started upgrading plugins one at a time to see when things would break... As weird as it sounds, I could upgrade the `kubernetes` plugin and the `openshift-(sync|login|pieline)` plugins to the latest with no issue. Then, I upgraded my `blueocean` and `blueocean-pipeline-editor` plugins to 1.3.0 and the error appeared! I'll try to dig in and discover what the connection might be and report back.  

          OK, I believe I found where things go sideways, but I have yet to be able to pin it down to a specific root cause. Upgrading BlueOcean to anything >= `1.2.0` causes the Guice dependency injections for `openshift-sync` to fail. I have performed a diff of blueocean 1.1.7 to 1.2.0 and discovered the following likely culprits:

          1. Jackson Upgrade
          2. Maven Upgrade
          3. JODA Time implementation
          4. Version mismatch in `org.apache:commons-lang` and `org.apache:commons-lang3`

          I will open a corresponding ticket against BlueOcean and reference this issue.

          Deven Phillips added a comment - OK, I believe I found where things go sideways, but I have yet to be able to pin it down to a specific root cause. Upgrading BlueOcean to anything >= `1.2.0` causes the Guice dependency injections for `openshift-sync` to fail. I have performed a diff of blueocean 1.1.7 to 1.2.0 and discovered the following likely culprits: 1. Jackson Upgrade 2. Maven Upgrade 3. JODA Time implementation 4. Version mismatch in `org.apache:commons-lang` and `org.apache:commons-lang3` I will open a corresponding ticket against BlueOcean and reference this issue.
          Deven Phillips made changes -
          Link New: This issue is blocked by JENKINS-47637 [ JENKINS-47637 ]
          Deven Phillips made changes -
          Link Original: This issue is blocked by JENKINS-47637 [ JENKINS-47637 ]

            gmontero Gabe Montero
            georgestark Sascha Vujevic
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: