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. jenkins-10.log
          44 kB
        2. jenkins-11.log
          47 kB
        3. jenkins-7-s62nq.log
          41 kB
        4. openshift-sync.hpi
          7.90 MB

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

          Gabe Montero added a comment -

          infosec812 thanks for the update / I see; yep, that would explain it.  Your manual construction somehow mismanaged the dependencies then.

           

          Pending a complete plugin list that does not have dependency issues on initial load like I cited in https://issues.jenkins-ci.org/browse/JENKINS-42276?focusedCommentId=321778&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-321778,

          and actually has the error noted in the description, I'm going to resolve this bug once we cut a new version of the sync change to remove the save call, and have folks retry.

          We'll also be bumping the blueocean version in our openshift jenkins image.  If similar issues arise when we do that, we'll have a repro case to work off of and go from there.

          Gabe Montero added a comment - infosec812 thanks for the update / I see; yep, that would explain it.  Your manual construction somehow mismanaged the dependencies then.   Pending a complete plugin list that does not have dependency issues on initial load like I cited in  https://issues.jenkins-ci.org/browse/JENKINS-42276?focusedCommentId=321778&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-321778 , and actually has the error noted in the description, I'm going to resolve this bug once we cut a new version of the sync change to remove the save call, and have folks retry. We'll also be bumping the blueocean version in our openshift jenkins image.  If similar issues arise when we do that, we'll have a repro case to work off of and go from there.

          Gabe Montero added a comment -

          infosec812   oops .... I think our comments passed in the ether

           

          OK, yeah, that seems to be it.  I'll take the plugin.txt there and start investigating / verifying / etc.  Thanks!

          Gabe Montero added a comment - infosec812    oops .... I think our comments passed in the ether   OK, yeah, that seems to be it.  I'll take the plugin.txt there and start investigating / verifying / etc.  Thanks!

          Gabe Montero added a comment -

          hey infosec812 - I tried running a s2i build from that branch / dir (https://github.com/sherl0cks/labs-ci-cd/tree/jenkins-42276-latest/s2i-config/jenkins-master), but when I run the image, I still get the "SEVERE: Failed Loading ... " messages

          and not the circular dependency when I `docker run ` the image.

           

          From the branch / dir local repo, I ran both:  s2i build . openshift/jenkins-2-centos7:latest jira-test:latest 

          and: s2i build . registry.access.redhat.com/openshift3/jenkins-2-rhel7:latest jira-test:latest 

           

          Any obvious differences you see re: building the image with the circular dependency issue?

          Or could you perhaps push the image you used to generate jenkins-11.log

          to your account on docker.io (assuming you have one) ?

           

           

           

          Gabe Montero added a comment - hey infosec812 - I tried running a s2i build from that branch / dir ( https://github.com/sherl0cks/labs-ci-cd/tree/jenkins-42276-latest/s2i-config/jenkins-master ), but when I run the image, I still get the "SEVERE: Failed Loading ... " messages and not the circular dependency when I `docker run ` the image.   From the branch / dir local repo, I ran both:  s2i build . openshift/jenkins-2-centos7:latest jira-test:latest  and: s2i build . registry.access.redhat.com/openshift3/jenkins-2-rhel7:latest jira-test:latest    Any obvious differences you see re: building the image with the circular dependency issue? Or could you perhaps push the image you used to generate jenkins-11.log to your account on docker.io (assuming you have one) ?      

          Justin Holmes added a comment -

          Just fyi its Justin Holmes pushing the changes right now. Deven and I are team mates.

          Maybe a commit missing somewhere on my end? Im travelling right now, will send an update in a couple hours. Can you share the log here so I can compare versions?

          Sorry for the wild goose chase Gabe. Jenkins plugins are the bane of my existance...

          Justin Holmes added a comment - Just fyi its Justin Holmes pushing the changes right now. Deven and I are team mates. Maybe a commit missing somewhere on my end? Im travelling right now, will send an update in a couple hours. Can you share the log here so I can compare versions? Sorry for the wild goose chase Gabe. Jenkins plugins are the bane of my existance...

          Gabe Montero added a comment -

          ah .. sorry for the confusion sherl0cks on who to tag

          and no worries ... getting a reliable repro will ease our worry (though the stack trace on the circular dep certainly points to the save() call in the GlobalPluginConfiguration I've previously noted)

          here's the lattest commit in the log when I cloned the branch you mentioned:

           

          gmontero ~/go/src/github.com/openshift/labs-ci-cd/s2i-config/jenkins-master  (jenkins-42276-recreate)$ git log -1
          commit 75cf51cb93fc1eda71f480db5c9a02983b50b52c
          Author: Justin Holmes <jholmes@redhat.com>
          Date:   Sun Dec 3 13:56:19 2017 -0700

              adding back plugins to get closer to original build

           

          Gabe Montero added a comment - ah .. sorry for the confusion sherl0cks on who to tag and no worries ... getting a reliable repro will ease our worry (though the stack trace on the circular dep certainly points to the save() call in the GlobalPluginConfiguration I've previously noted) here's the lattest commit in the log when I cloned the branch you mentioned:   gmontero ~/go/src/github.com/openshift/labs-ci-cd/s2i-config/jenkins-master  (jenkins-42276-recreate)$ git log -1 commit 75cf51cb93fc1eda71f480db5c9a02983b50b52c Author: Justin Holmes <jholmes@redhat.com> Date:   Sun Dec 3 13:56:19 2017 -0700     adding back plugins to get closer to original build  

          Justin Holmes added a comment -

          Gabe can you confirm you are on the correct branch (jenkins-42276-latest)?

          Github shows a different latest commit
          https://github.com/sherl0cks/labs-ci-cd/commits/jenkins-42276-latest

          Justin Holmes added a comment - Gabe can you confirm you are on the correct branch (jenkins-42276-latest)? Github shows a different latest commit https://github.com/sherl0cks/labs-ci-cd/commits/jenkins-42276-latest

          Gabe Montero added a comment -

          yep that was it ... had the recreate vs. latest branch .... have reproduced, about to test fix

          Gabe Montero added a comment - yep that was it ... had the recreate vs. latest branch .... have reproduced, about to test fix

          Gabe Montero added a comment -

          I was able to successfully verify the fix using sherl0cks 's repro env.

           

          My steps were, from my clone of https://github.com/sherl0cks/labs-ci-cd/tree/jenkins-42276-latest/s2i-config/jenkins-master

          1) remove openshfit-sync from the plugins.txt

          2) create a plugins dir off of the jenkins-master dir

          3) copy the updated plugin to plugins/

          4) ran s2i build . openshift/jenkins-2-centos7:latest jira-test:latest 

           

          I then docker ran jira-test:latest and all was good.

           

          That s2i command can extend the openshift jenkins rhel image as well.  But you have to name the file in the plugins directory

          as "openshift-sync.jpi" prior to running the s2i command.  There are old, gory details about how jenkins overrides plugins that apply

          here, along with differences in how the plugins get installed with the centos vs. rhel image.

           

          With all that, as I alluded to before, I'll resolve this bug once I cut a new version of openshift-sync up at the jenkins update center.  Should be this week.

          Gabe Montero added a comment - I was able to successfully verify the fix using sherl0cks 's repro env.   My steps were, from my clone of https://github.com/sherl0cks/labs-ci-cd/tree/jenkins-42276-latest/s2i-config/jenkins-master 1) remove openshfit-sync from the plugins.txt 2) create a plugins dir off of the jenkins-master dir 3) copy the updated plugin to plugins/ 4) ran s2i build . openshift/jenkins-2-centos7:latest jira-test:latest    I then docker ran jira-test:latest and all was good.   That s2i command can extend the openshift jenkins rhel image as well.  But you have to name the file in the plugins directory as "openshift-sync.jpi" prior to running the s2i command.  There are old, gory details about how jenkins overrides plugins that apply here, along with differences in how the plugins get installed with the centos vs. rhel image.   With all that, as I alluded to before, I'll resolve this bug once I cut a new version of openshift-sync up at the jenkins update center.  Should be this week.

          Gabe Montero added a comment -

          v0.9.1 of the sync plugin has the fix for this and is available at the jenkins update center

           

          the openshift jenkins centos image is also available on docker hub

           

          marking resolved

          Gabe Montero added a comment - v0.9.1 of the sync plugin has the fix for this and is available at the jenkins update center   the openshift jenkins centos image is also available on docker hub   marking resolved

          bill tang added a comment -

          i  build jenkins master image  and  jenkins slave image  like  follow  steps.  but when i start deploying the jenkins master ,  same error  occured.  can  u  give some advices? Thanks

          jenkins master  base image:   jenkins-2.32-rhel7

          jenkins slave base  image:  rhel7

          install on  master:  swarm plugin , gearman  plugin ,   zuul 

          install on slave :  swarm plugin,  maven 

          bill tang added a comment - i  build jenkins master image  and  jenkins slave image  like  follow  steps.  but when i start deploying the jenkins master ,  same error  occured.  can  u  give some advices? Thanks jenkins master  base image:   jenkins-2.32-rhel7 jenkins slave base  image:  rhel7 install on  master:  swarm plugin , gearman  plugin ,   zuul  install on slave :  swarm plugin,  maven 

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

              Created:
              Updated:
              Resolved: