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 jenkinsci-dev+unsubscr...@googlegroups.com.
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