Hello all,

Recently I encountered the following exception while deploying an plugin to our
acceptance jenkins instance:

java.lang.IllegalStateException: Expected 1 instance of org.example.FooStore 
but got 2
        at hudson.ExtensionList.lookupSingleton(ExtensionList.java:450)
        at 
org.example.MyFlowExecutionListener.onRunning(MyFlowExecutionListener.java:33)
        at 
org.jenkinsci.plugins.workflow.flow.FlowExecutionListener.fireRunning(FlowExecutionListener.java:54)
        at 
org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:321)
        at hudson.model.ResourceController.execute(ResourceController.java:97)
        at hudson.model.Executor.run(Executor.java:429)

As I am not sure how this could have happened and was so far not able to
reproduce the issue I am asking here, hoping somebody experienced this before
and knows the reason.
Unfortunately the Jenkins instance has been rolled back and I can't provide
more logs.

The duplicate extension is defined and used onlu in this plugin. No other
plugin can provide an extension for this.
After the rollback I tried to lookup the extension via the groovy console and
none was found (technically the class to load itself was missing as expected).

Some information about the system:

* Jenkins version: 2.164.3
* Plugin was dynamically loadable
* Plugin was installed via the "Upload file" functionality of the upload
  center
* The `FooStore` component is *always* looked up via `.lookupSingleton()`
* The `FooStore` component is not part of any class hierarchy and is not
  Describable/has no descriptor
* The plugin was installed in the past (but was uninstalled again) and the
  following leftovers did still exist (these are compatible with the newly
  deployed version):
  * Configuration XML (for another component)
  * Actions attached to builds (No serialized state besides two Strings)
* Builds were executing during the installation
* The plugin has worked hundreds of times while executed with the test harness,
  also so far I was not able reproduce the issue when manually installing it

This looks like a fundamental problem of my plugin structure or a race
condition somewhere in the plugin loading or lookup mechanism.

Any pointers are appreciated.

Thanks,
Thomas

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/20190715091152.GA4086%40amadeus.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to