[JIRA] (JENKINS-36696) Naginator plugin not really optional as it spews out a stacktrace when not installed

37 views
Skip to first unread message

mneale@cloudbees.com (JIRA)

unread,
Jul 14, 2016, 9:05:01 PM7/14/16
to jenkinsc...@googlegroups.com
Michael Neale created an issue
 
Jenkins / Bug JENKINS-36696
Naginator plugin not really optional as it spews out a stacktrace when not installed
Issue Type: Bug Bug
Assignee: Kohsuke Kawaguchi
Components: build-timeout-plugin
Created: 2016/Jul/15 1:04 AM
Environment: Jenkins 2.7
Priority: Major Major
Reporter: Michael Neale

If you install build timeout but not naginator, everytime you launch jenkins you see the stack trace below.

This seems not a great way to treat an "optional" dependency. It should be non optional if it is going to do this, or some other approach needs to be used instead of just failing hard to load a component.

WARNING: Failed to instantiate Key[type=hudson.plugins.build_timeout.operations.AbortAndRestartOperation$DescriptorImpl, annotation=[none]]; skipping this component
com.google.inject.ProvisionException: Guice provision errors:

1) Error injecting constructor, java.lang.NoClassDefFoundError: com/chikli/hudson/plugin/naginator/ScheduleDelay
  at hudson.plugins.build_timeout.operations.AbortAndRestartOperation$DescriptorImpl.<init>(AbortAndRestartOperation.java:120)

1 error
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:52)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	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$3$1.call(InjectorImpl.java:1005)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1051)
	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:1001)
	at hudson.ExtensionFinder$GuiceFinder._find(ExtensionFinder.java:386)
	at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:377)
	at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:470)
	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:320)
	at org.jenkinsci.plugins.github.migration.Migrator.migrate(Migrator.java:41)
	at org.jenkinsci.plugins.github.GitHubPlugin.postInitialize(GitHubPlugin.java:39)
	at hudson.PluginManager$2$1$2.run(PluginManager.java:434)
	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:996)
Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo

devld@ikedam.jp (JIRA)

unread,
Jul 18, 2016, 6:17:02 PM7/18/16
to jenkinsc...@googlegroups.com

devld@ikedam.jp (JIRA)

unread,
Jul 18, 2016, 6:18:01 PM7/18/16
to jenkinsc...@googlegroups.com
ikedam updated an issue

I'm making a new release with this fix immediately.

Change By: ikedam
Priority: Major Critical

devld@ikedam.jp (JIRA)

unread,
Jul 18, 2016, 6:32:04 PM7/18/16
to jenkinsc...@googlegroups.com

devld@ikedam.jp (JIRA)

unread,
Jul 18, 2016, 6:34:01 PM7/18/16
to jenkinsc...@googlegroups.com
ikedam commented on Bug JENKINS-36696

By the way, why JVM tries to load ScheduleDelay when initializing AbortAndRestartOperation$DescriptorImpl?
It looks strange to me.

devld@ikedam.jp (JIRA)

unread,
Jul 18, 2016, 6:42:01 PM7/18/16
to jenkinsc...@googlegroups.com
ikedam updated an issue

I found it only displays the stacktrace, but doesn't cause fail to load build-timeout plugin.
Changed the priority back to Major.

Change By: ikedam
Priority: Critical Major

devld@ikedam.jp (JIRA)

unread,
Jul 18, 2016, 6:42:02 PM7/18/16
to jenkinsc...@googlegroups.com

devld@ikedam.jp (JIRA)

unread,
Jul 18, 2016, 6:43:02 PM7/18/16
to jenkinsc...@googlegroups.com
ikedam resolved as Fixed
 

Released 1.17.1 with the fix for this.
It will be available in the update center in a day.

Change By: ikedam
Status: Open Resolved
Resolution: Fixed

dbeck@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 12:27:05 PM7/19/16
to jenkinsc...@googlegroups.com

mneale@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 4:55:01 PM7/19/16
to jenkinsc...@googlegroups.com

Daniel Beck yes it appears to be if I explicitly add it as a dep.

We are not sure what brings this in as a transitive, but when we know, we can bump its dependency to use this.

mneale@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 5:15:03 PM7/19/16
to jenkinsc...@googlegroups.com

mneale@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 5:36:01 PM7/19/16
to jenkinsc...@googlegroups.com
Michael Neale updated an issue
 
Change By: Michael Neale
Attachment: Screen Shot 2016-07-19 at 2.35.23 PM.png

mneale@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 5:37:02 PM7/19/16
to jenkinsc...@googlegroups.com
 
Re: Naginator plugin not really optional as it spews out a stacktrace when not installed

Daniel Beckham ikedam

I am not sure if this is good.
When running the installer of jenkins now, it disables that extension, but then the installer stalls as it never sees the build timeout "recommended" plugin completed:

SEVERE: Failed to enable build timeout plugin
java.io.IOException: Failed to delete /Users/michaelneale/projects/paas/blueocean-plugin/blueocean-plugin/work/plugins/build-timeout.jpi.disabled
	at hudson.PluginWrapper.enable(PluginWrapper.java:444)
	at hudson.model.UpdateCenter$EnableJob.run(UpdateCenter.java:1424)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:110)
	at java.lang.Thread.run(Thread.java:745)

I suggest undoing this change, until the installer can cope with plugins that fail with optional extensions. As it is, this is broken for everyone right now.

mneale@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 5:39:01 PM7/19/16
to jenkinsc...@googlegroups.com

dbeck@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 5:43:01 PM7/19/16
to jenkinsc...@googlegroups.com
Daniel Beck commented on Bug JENKINS-36696
 
Re: Naginator plugin not really optional as it spews out a stacktrace when not installed

It works for me on a pristine Jenkins home with 2.7.1 – the wizard pulls down build timeout 1.17.1.

Try a standalone install, not a debug run.

dbeck@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 5:48:01 PM7/19/16
to jenkinsc...@googlegroups.com

Worked for me in 2.14 as well, so looks like it's likely an issue with your environment.

mneale@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 6:05:01 PM7/19/16
to jenkinsc...@googlegroups.com
Michael Neale updated an issue
 
Change By: Michael Neale
Comment: [~dbeckham] [~ikedam]


I am not sure if this is good.
When running the installer of jenkins now, it disables that extension, but then the installer stalls as it never sees the build timeout "recommended" plugin completed:

{noformat}

SEVERE: Failed to enable build timeout plugin
java.io.IOException: Failed to delete /Users/michaelneale/projects/paas/blueocean-plugin/blueocean-plugin/work/plugins/build-timeout.jpi.disabled
at hudson.PluginWrapper.enable(PluginWrapper.java:444)
at hudson.model.UpdateCenter$EnableJob.run(UpdateCenter.java:1424)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:110)
at java.lang.Thread.run(Thread.java:745)
{noformat}

!Screen Shot 2016-07-19 at 2.35.23 PM.png|thumbnail!

I suggest undoing this change, until the installer can cope with plugins that fail with optional extensions. As it is, this is broken for everyone right now.

mneale@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 6:06:03 PM7/19/16
to jenkinsc...@googlegroups.com
Michael Neale commented on Bug JENKINS-36696
 
Re: Naginator plugin not really optional as it spews out a stacktrace when not installed

I cleaned everything out and it was fine.
Sorry for the excitement.

This looks great now, works great. Daniel Beckham ikedam you are awesome - thanks for this!

All good.

mneale@cloudbees.com (JIRA)

unread,
Jul 19, 2016, 6:06:03 PM7/19/16
to jenkinsc...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages