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

copyartifact 1.44 incompatible with scm-sync-configuration and datadog

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • copyartifact-plugin
    • None
    • copyartifact-plugin 1.44
      datadog 1.1.1
      scm-sync-configuration 0.0.10
      jenkins 2.236
      docker, centos 7

      After the update to copyartifact-plugin v1.44 the following exception occurs:

      2020-05-13 09:54:23.779+0000 [id=28]    WARNING h.ExtensionFinder$GuiceFinder$FaultTolerantScope$1#error: Failed to instantiate Key[type=hudson.plugins.copyartifact.CopyArtifactConfiguration, annotation=[none]]; skipping this component
      com.google.inject.ProvisionException: Unable to provision, see the following errors:
      
      1) Tried proxying hudson.plugins.copyartifact.CopyArtifactConfiguration 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:440)
              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:402)
              at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:393)
              at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:346)
              at hudson.ExtensionList.load(ExtensionList.java:381)
              at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317)
              at hudson.ExtensionList.getComponents(ExtensionList.java:183)
              at hudson.DescriptorExtensionList.load(DescriptorExtensionList.java:213)
              at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317)
              at hudson.ExtensionList.iterator(ExtensionList.java:172)
              at hudson.model.User.allocateDefaultPropertyInstancesAsNeeded(User.java:205)
              at hudson.model.User.load(User.java:194)
              at hudson.model.User.<init>(User.java:187)
              at hudson.model.User.getOrCreateById(User.java:508)
              at hudson.model.User.getById(User.java:600)
              at hudson.model.User.get(User.java:585)
              at hudson.model.User.current(User.java:569)
              at jenkins.model.Jenkins.getMe(Jenkins.java:4774)
              at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationPlugin.getCurrentUser(ScmSyncConfigurationPlugin.java:325)
              at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationPlugin.commitChangeset(ScmSyncConfigurationPlugin.java:447)
              at hudson.plugins.scm_sync_configuration.transactions.ScmTransaction.commit(ScmTransaction.java:34)
              at hudson.plugins.scm_sync_configuration.transactions.AtomicTransaction.registerPath(AtomicTransaction.java:21)
              at hudson.plugins.scm_sync_configuration.extensions.ScmSyncConfigurationSaveableListener.onChange(ScmSyncConfigurationSaveableListener.java:28)
              at hudson.model.listeners.SaveableListener.fireOnChange(SaveableListener.java:81)
              at hudson.model.Descriptor.save(Descriptor.java:893)
              at hudson.plugins.copyartifact.CopyArtifactConfiguration.setMode(CopyArtifactConfiguration.java:121)
              at hudson.plugins.copyartifact.CopyArtifactConfiguration.load(CopyArtifactConfiguration.java:89)
              at hudson.plugins.copyartifact.CopyArtifactConfiguration.<init>(CopyArtifactConfiguration.java:60)
              at hudson.plugins.copyartifact.CopyArtifactConfiguration$$FastClassByGuice$$4dc693e9.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.access$000(ConstructorInjector.java:32)
              at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:89)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
              at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:572)
              at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
              at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
              at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:87)
              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:440)
              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:402)
              at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:393)
              at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:346)
              at hudson.ExtensionList.load(ExtensionList.java:381)
              at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317)
              at hudson.ExtensionList.iterator(ExtensionList.java:172)
              at jenkins.model.Jenkins.getDescriptor(Jenkins.java:1583)
              at com.dabsquared.gitlabjenkins.connection.GitLabConnection.migrate(GitLabConnection.java:151)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104)
              at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175)
              at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
              at jenkins.model.Jenkins$5.runTask(Jenkins.java:1131)
              at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
              at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
              at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at java.lang.Thread.run(Thread.java:748)
      

      That call seems to be invoked by scm-sync-configuration plugin

          [JENKINS-62267] copyartifact 1.44 incompatible with scm-sync-configuration and datadog

          Basil Crow added a comment -

          I got a very similar exception after upgrading, but with DataDog rather than SCM Sync Configuration:

          2020-07-20 21:56:35.869+0000 [id=33]    WARNING h.ExtensionFinder$GuiceFinder$FaultTolerantScope$1#error: Failed to instantiate Key[type=hudson.plugins.copyartifact.CopyArtifactConfiguration, annotation=[none]]; skipping this component
          com.google.inject.ProvisionException: Unable to provision, see the following errors:
          
          1) Tried proxying hudson.plugins.copyartifact.CopyArtifactConfiguration 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:440)
                  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:402)
                  at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:393)
                  at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:346)
                  at hudson.ExtensionList.load(ExtensionList.java:381)
                  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317)
                  at hudson.ExtensionList.getComponents(ExtensionList.java:183)
                  at hudson.DescriptorExtensionList.load(DescriptorExtensionList.java:213)
                  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317)
                  at hudson.ExtensionList.iterator(ExtensionList.java:172)
                  at hudson.model.User.allocateDefaultPropertyInstancesAsNeeded(User.java:205)
                  at hudson.model.User.load(User.java:194)
                  at hudson.model.User.<init>(User.java:187)
                  at hudson.model.User.getOrCreateById(User.java:508)
                  at hudson.model.User.getById(User.java:600)
                  at hudson.model.User.get(User.java:585)
                  at hudson.model.User.current(User.java:569)
                  at org.datadog.jenkins.plugins.datadog.DatadogUtilities.getUserId(DatadogUtilities.java:537)
                  at org.datadog.jenkins.plugins.datadog.listeners.DatadogSaveableListener.onChange(DatadogSaveableListener.java:71)
                  at hudson.model.listeners.SaveableListener.fireOnChange(SaveableListener.java:81)
                  at hudson.model.Descriptor.save(Descriptor.java:893)
                  at hudson.plugins.copyartifact.CopyArtifactConfiguration.setMode(CopyArtifactConfiguration.java:121)
                  at hudson.plugins.copyartifact.CopyArtifactConfiguration.load(CopyArtifactConfiguration.java:89)
                  at hudson.plugins.copyartifact.CopyArtifactConfiguration.<init>(CopyArtifactConfiguration.java:60)
                  at hudson.plugins.copyartifact.CopyArtifactConfiguration$$FastClassByGuice$$4dc693e9.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.access$000(ConstructorInjector.java:32)
                  at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:89)
                  at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
                  at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:572)
                  at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
                  at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
                  at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:87)
                  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:440)
                  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:402)
                  at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:393)
                  at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:346)
                  at hudson.ExtensionList.load(ExtensionList.java:381)
                  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317)
                  at hudson.ExtensionList.iterator(ExtensionList.java:172)
                  at jenkins.model.Jenkins.getDescriptorByType(Jenkins.java:1608)
                  at hudson.plugins.git.GitSCM.onLoaded(GitSCM.java:1923)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                  at java.lang.reflect.Method.invoke(Method.java:498)
                  at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104)
                  at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175)
                  at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
                  at jenkins.model.Jenkins$5.runTask(Jenkins.java:1131)
                  at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
                  at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
                  at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                  at java.lang.Thread.run(Thread.java:748)
          

          ikedam, are there any plans to address this? This is blocking me from upgrading to the latest version of copyartifact.

          Basil Crow added a comment - I got a very similar exception after upgrading, but with DataDog rather than SCM Sync Configuration: 2020-07-20 21:56:35.869+0000 [id=33] WARNING h.ExtensionFinder$GuiceFinder$FaultTolerantScope$1#error: Failed to instantiate Key[type=hudson.plugins.copyartifact.CopyArtifactConfiguration, annotation=[none]]; skipping this component com.google.inject.ProvisionException: Unable to provision, see the following errors: 1) Tried proxying hudson.plugins.copyartifact.CopyArtifactConfiguration 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:440) 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:402) at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:393) at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:346) at hudson.ExtensionList.load(ExtensionList.java:381) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317) at hudson.ExtensionList.getComponents(ExtensionList.java:183) at hudson.DescriptorExtensionList.load(DescriptorExtensionList.java:213) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317) at hudson.ExtensionList.iterator(ExtensionList.java:172) at hudson.model.User.allocateDefaultPropertyInstancesAsNeeded(User.java:205) at hudson.model.User.load(User.java:194) at hudson.model.User.<init>(User.java:187) at hudson.model.User.getOrCreateById(User.java:508) at hudson.model.User.getById(User.java:600) at hudson.model.User.get(User.java:585) at hudson.model.User.current(User.java:569) at org.datadog.jenkins.plugins.datadog.DatadogUtilities.getUserId(DatadogUtilities.java:537) at org.datadog.jenkins.plugins.datadog.listeners.DatadogSaveableListener.onChange(DatadogSaveableListener.java:71) at hudson.model.listeners.SaveableListener.fireOnChange(SaveableListener.java:81) at hudson.model.Descriptor.save(Descriptor.java:893) at hudson.plugins.copyartifact.CopyArtifactConfiguration.setMode(CopyArtifactConfiguration.java:121) at hudson.plugins.copyartifact.CopyArtifactConfiguration.load(CopyArtifactConfiguration.java:89) at hudson.plugins.copyartifact.CopyArtifactConfiguration.<init>(CopyArtifactConfiguration.java:60) at hudson.plugins.copyartifact.CopyArtifactConfiguration$$FastClassByGuice$$4dc693e9.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.access$000(ConstructorInjector.java:32) at com.google.inject.internal.ConstructorInjector$1.call(ConstructorInjector.java:89) at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115) at hudson.ExtensionFinder$GuiceFinder$SezpozModule.onProvision(ExtensionFinder.java:572) at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126) at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:87) 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:440) 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:402) at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:393) at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:346) at hudson.ExtensionList.load(ExtensionList.java:381) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:317) at hudson.ExtensionList.iterator(ExtensionList.java:172) at jenkins.model.Jenkins.getDescriptorByType(Jenkins.java:1608) at hudson.plugins.git.GitSCM.onLoaded(GitSCM.java:1923) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:104) at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:175) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) at jenkins.model.Jenkins$5.runTask(Jenkins.java:1131) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) ikedam , are there any plans to address this? This is blocking me from upgrading to the latest version of copyartifact .

          Basil Crow added a comment -

          I submitted a reproducible test case in jenkinsci/copyartifact-plugin#125. I suggest looking at the fixes for JENKINS-60393 and JENKINS-39169 for inspiration as to how to fix this error.

          Basil Crow added a comment - I submitted a reproducible test case in jenkinsci/copyartifact-plugin#125 . I suggest looking at the fixes for JENKINS-60393 and JENKINS-39169 for inspiration as to how to fix this error.

          ikedam added a comment -

          Outputs of `mvn test -Dtest=CopyArtifactConfigurationTest#circularDependencyTest` with https://github.com/jenkinsci/copyartifact-plugin/pull/125:
          failure.log

          • Failed to instantiate... occurs after `Started all plugins` (`PLUGINS_STARTED`), before `Augmented all extensions` (`EXTENSIONS_AUGMENTED`).
          • `CopyArtifactConfiguration` calls `GlobalConfiguration#save()` which fires `SaveableListener` of other plugins (datadog, sync-scm-plugins, and so on). It triggers extension-loading process again and results the circular dependency.

          ikedam added a comment - Outputs of `mvn test -Dtest=CopyArtifactConfigurationTest#circularDependencyTest` with https://github.com/jenkinsci/copyartifact-plugin/pull/125: failure.log Failed to instantiate... occurs after `Started all plugins` (`PLUGINS_STARTED`), before `Augmented all extensions` (`EXTENSIONS_AUGMENTED`). `CopyArtifactConfiguration` calls `GlobalConfiguration#save()` which fires `SaveableListener` of other plugins (datadog, sync-scm-plugins, and so on). It triggers extension-loading process again and results the circular dependency.

          ikedam added a comment -

          smasher basil

          Fixed in copyartifact-1.45.1.
          It will be available in the update center in a day.
          Please try that.

          ikedam added a comment - smasher basil Fixed in copyartifact-1.45.1. It will be available in the update center in a day. Please try that.

            smasher Daniel Estermann
            smasher Daniel Estermann
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: