To reproduce in 2.14-SNAPSHOT:
- start on a new home
- swat aside the setup wizard
- install github-branch-source including all dependencies
- manually upload workflow-scm-step-2.0.hpi (downgrading from the 2.2 installed from the UC)
- restart
You will see a warning about cyclic dependencies:
... hudson.PluginManager$1$3$2$3 reactOnCycle
SEVERE: found cycle in plugin dependencies: (root=Plugin:workflow-scm-step, deactivating all involved) Plugin:workflow-scm-step -> Plugin:git -> Plugin:workflow-scm-step
Which looks fine (you need to update workflow-scm-step to solve the conflict) until you realize it is disabling git but not its dependencies. So then you see a lot of extension loading errors, which would normally be just noise:
... hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1 error
WARNING: Failed to instantiate Key[type=org.jenkinsci.plugins.github_branch_source.GitHubSCMSource$DescriptorImpl, annotation=[none]]; skipping this component
com.google.inject.ProvisionException: Guice provision errors:
1) Error injecting constructor, java.lang.NoClassDefFoundError: jenkins/plugins/git/AbstractGitSCMSource
at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource$DescriptorImpl.<init>(GitHubSCMSource.java:722)
1 error
at ...
at hudson.ExtensionFinder$GuiceFinder._find(ExtensionFinder.java:386)
at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:377)
at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:471)
at hudson.ExtensionList.load(ExtensionList.java:349)
at hudson.ExtensionList.ensureLoaded(ExtensionList.java:287)
at hudson.ExtensionList.getComponents(ExtensionList.java:167)
at hudson.DescriptorExtensionList.load(DescriptorExtensionList.java:185)
at hudson.ExtensionList.ensureLoaded(ExtensionList.java:287)
at hudson.ExtensionList.iterator(ExtensionList.java:156)
at hudson.ExtensionList.get(ExtensionList.java:147)
at com.cloudbees.jenkins.GitHubPushTrigger$DescriptorImpl.get(GitHubPushTrigger.java:359)
at org.jenkinsci.plugins.github.migration.Migrator.migrate(Migrator.java:40)
at org.jenkinsci.plugins.github.GitHubPlugin.postInitialize(GitHubPlugin.java:39)
at hudson.PluginManager$2$4$5.run(PluginManager.java:537)
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:998)
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)
Caused by: java.lang.NoClassDefFoundError: jenkins/plugins/git/AbstractGitSCMSource
at ...
at java.lang.Class.getEnclosingClass(Class.java:1277)
at hudson.model.Descriptor.<init>(Descriptor.java:270)
at jenkins.scm.api.SCMSourceDescriptor.<init>(SCMSourceDescriptor.java:42)
at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource$DescriptorImpl.<init>(GitHubSCMSource.java:722)
at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource$DescriptorImpl$$FastClassByGuice$$fee958e6.newInstance(<generated>)
at ...
... 28 more
Caused by: java.lang.ClassNotFoundException: jenkins.plugins.git.AbstractGitSCMSource
at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1376)
at ...
... hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1 error
WARNING: Failed to instantiate Key[type=org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator$DescriptorImpl, annotation=[none]]; skipping this component
com.google.inject.ProvisionException: Guice provision errors:
1) Error injecting constructor, java.lang.NoClassDefFoundError: jenkins/plugins/git/AbstractGitSCMSource
at org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator$DescriptorImpl.<init>(GitHubSCMNavigator.java:326)
1 error
at ...
However after all this you get
... hudson.init.impl.InstallUncaughtExceptionHandler$DefaultUncaughtExceptionHandler uncaughtException
SEVERE: A thread (pool-6-thread-5/40) died unexpectedly due to an uncaught exception, this may leave your Jenkins in a bad way and is usually indicative of a bug in the code.
java.lang.NoClassDefFoundError: org/jenkinsci/plugins/github_branch_source/GitHubSCMSource
at java.lang.Class.getDeclaringClass0(Native Method)
at java.lang.Class.getDeclaringClass(Class.java:1235)
at java.lang.Class.getEnclosingClass(Class.java:1277)
at java.lang.Class.getSimpleBinaryName(Class.java:1443)
at java.lang.Class.getSimpleName(Class.java:1309)
at hudson.init.TaskMethodFinder.getDisplayNameOf(TaskMethodFinder.java:80)
at hudson.init.TaskMethodFinder$TaskImpl.getDisplayName(TaskMethodFinder.java:167)
at jenkins.InitReactorRunner$1.onTaskStarted(InitReactorRunner.java:64)
at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onTaskStarted(ReactorListener.java:89)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:208)
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)
and at this point Jenkins startup ends; the UI just says Please wait while Jenkins is restarting... forever.
These steps to reproduce are somewhat artificial. The original report comes from CloudBees Jenkins Enterprise: after starting 1.642.4.1 and installing subversion from the update center, Jenkins will not start (though in that case the fatal error comes a little later and lacks the "in a bad way" message.