[JIRA] (JENKINS-50833) NoSuchMethodError causing Pipeline editor to not see agent settings

2 views
Skip to first unread message

kshultz@cloudbees.com (JIRA)

unread,
Apr 16, 2018, 6:50:04 PM4/16/18
to jenkinsc...@googlegroups.com
Karl Shultz created an issue
 
Jenkins / Bug JENKINS-50833
NoSuchMethodError causing Pipeline editor to not see agent settings
Issue Type: Bug Bug
Assignee: Andrew Bayer
Attachments: image-2018-04-16-18-40-00-833.png
Components: pipeline-model-definition-plugin
Created: 2018-04-16 22:49
Environment: Jenkins:
- Core 2.116
- Blue Ocean 1.5.0
- Declarative 1.28
- Experimental update center everything else

Client:
- Fedora workstation, updated and running the latest available version of Chrome
Priority: Major Major
Reporter: Karl Shultz

Summary
After taking the upgrade to Declarative 1.28, previously working Blue Ocean pipelines don't work correctly inside the editor. The editor still works, but the ability to change the agent type has gone missing. This was originally reported as Blue Ocean bug JENKINS-50805.

Steps to recreate
1. Set up Blue Ocean to connect to a previously working Pipeline, or open a preexisting Pipeline.

2. Launch the pipeline editor, and notice that there's no "Agent" settings available:

3. In the Jenkins log, you'll see the following InvocationTargetException, caused by a NoSuchMethodException:

Apr 16, 2018 10:29:19 PM org.eclipse.jetty.server.handler.ContextHandler$Context log
WARNING: Error while serving http://172.18.40.95:8080/blue/rest/pipeline-metadata/agentMetadata
java.lang.reflect.InvocationTargetException
	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:347)
	at org.kohsuke.stapler.ForwardingFunction.invoke(ForwardingFunction.java:63)
	at io.jenkins.blueocean.commons.stapler.TreeResponse$Processor.invoke(TreeResponse.java:43)
	at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
	at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
	at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:686)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
	at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
	at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
	at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:564)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
	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.NoSuchMethodError: org.jenkinsci.plugins.pipeline.modeldefinition.agent.DeclarativeAgentDescriptor.all()Lhudson/ExtensionList;
	at io.blueocean.rest.pipeline.editor.PipelineMetadataService.doAgentMetadata(PipelineMetadataService.java:70)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:625)
	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
	... 86 more

While talking it out on Gitter (and while I was in the car), Ivan Meredith and Vivek Pandey figured out the changed method signature in 1.28 is probably the root cause.

Old:

public static ExtensionList<DeclarativeAgentDescriptor> all() {
        return ExtensionList.lookup(DeclarativeAgentDescriptor.class);
    }

New:

    public static List<DeclarativeAgentDescriptor> all() {
        ExtensionList<DeclarativeAgentDescriptor> descs = ExtensionList.lookup(DeclarativeAgentDescriptor.class);
        return descs.stream().sorted(Comparator.comparing(DeclarativeAgentDescriptor::getName)).collect(Collectors.toList());
    }
Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.3.0#73011-sha1:3c73d0e)
Atlassian logo

kshultz@cloudbees.com (JIRA)

unread,
Apr 16, 2018, 6:52:02 PM4/16/18
to jenkinsc...@googlegroups.com
Karl Shultz commented on Bug JENKINS-50833
 
Re: NoSuchMethodError causing Pipeline editor to not see agent settings

Can also be recreated via:

docker run \
--rm \
-u root \
-p 8080:8080 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$HOME":/home \
jenkinsci/blueocean

kshultz@cloudbees.com (JIRA)

unread,
Apr 16, 2018, 6:52:02 PM4/16/18
to jenkinsc...@googlegroups.com
Karl Shultz updated an issue
 
Change By: Karl Shultz
*Summary*
After taking the upgrade to Declarative 1.28, previously working Blue Ocean pipelines don't work correctly inside the editor. The editor still works, but the ability to change the agent type has gone missing. This was originally reported as Blue Ocean bug [JENKINS-50805|https://issues.jenkins-ci.org/browse/JENKINS-50805].

*Steps to recreate*

1. Set up Blue Ocean to connect to a previously working Pipeline, or open a preexisting Pipeline.

2. Launch the pipeline editor, and notice that there's no "Agent" settings available:
!image-2018-04-16-18-40-00-833.png|thumbnail!

3. In the Jenkins log, you'll see the following {{InvocationTargetException}}, caused by a {{NoSuchMethodException}}:

{code:none}
{code}

While talking it out on Gitter (and while I was in the car), [~imeredith] and [~vivek]
figured out wrote about the changed method signature in 1.28 is probably the root cause.
:

Old:
{code:none}

public static ExtensionList<DeclarativeAgentDescriptor> all() {
        return ExtensionList.lookup(DeclarativeAgentDescriptor.class);
    }
{code}

New:
{code:none}

    public static List<DeclarativeAgentDescriptor> all() {
        ExtensionList<DeclarativeAgentDescriptor> descs = ExtensionList.lookup(DeclarativeAgentDescriptor.class);
        return descs.stream().sorted(Comparator.comparing(DeclarativeAgentDescriptor::getName)).collect(Collectors.toList());
    }
{code}

kshultz@cloudbees.com (JIRA)

unread,
Apr 16, 2018, 6:57:02 PM4/16/18
to jenkinsc...@googlegroups.com
 
Re: NoSuchMethodError causing Pipeline editor to not see agent settings

Setting up a link relationship between the originally-reported issue and this one.

kshultz@cloudbees.com (JIRA)

unread,
Apr 16, 2018, 7:03:02 PM4/16/18
to jenkinsc...@googlegroups.com
Karl Shultz updated an issue
Change By: Karl Shultz
Environment:
Jenkins:
- Core 2.116
- Blue Ocean 1.5.0
- Declarative 1. 28 2.8
- Experimental update center everything else

Client:
- Fedora workstation, updated and running the latest available version of Chrome

kshultz@cloudbees.com (JIRA)

unread,
Apr 16, 2018, 7:03:04 PM4/16/18
to jenkinsc...@googlegroups.com
Karl Shultz updated an issue
*Summary*
After taking the upgrade to Declarative 1.
28 2.8 , previously working Blue Ocean pipelines don't work correctly inside the editor. The editor still works, but the ability to change the agent type has gone missing. This was originally reported as Blue Ocean bug [JENKINS-50805|https://issues.jenkins-ci.org/browse/JENKINS-50805].
While talking it out on Gitter (and while I was in the car), [~imeredith] and [~vivek] wrote about the changed method signature in 1.28:


Old:
{code:none}
public static ExtensionList<DeclarativeAgentDescriptor> all() {
        return ExtensionList.lookup(DeclarativeAgentDescriptor.class);
    }
{code}

New:
{code:none}
    public static List<DeclarativeAgentDescriptor> all() {
        ExtensionList<DeclarativeAgentDescriptor> descs = ExtensionList.lookup(DeclarativeAgentDescriptor.class);
        return descs.stream().sorted(Comparator.comparing(DeclarativeAgentDescriptor::getName)).collect(Collectors.toList());
    }
{code}

vivek.pandey@gmail.com (JIRA)

unread,
Apr 16, 2018, 7:07:02 PM4/16/18
to jenkinsc...@googlegroups.com
Vivek Pandey commented on Bug JENKINS-50833
 
Re: NoSuchMethodError causing Pipeline editor to not see agent settings

Basically if users upgrade to pipeline-model-definition 1.2.8, this incompatibility will cause pipeline editor to be non-functional.

abobwhite89@gmail.com (JIRA)

unread,
Apr 16, 2018, 10:48:02 PM4/16/18
to jenkinsc...@googlegroups.com

I noticed this issue yesterday after using Pipeline and Blue Ocean for the first time and was very confused. I tried downgrading to Pipeline 2.4 from 2.5 but it still appears that `pipeline-model-definition 1.2.8` is the dependency there. I don't see a way to easily downgrade that specific dependency

andrew.bayer@gmail.com (JIRA)

unread,
Apr 17, 2018, 9:51:02 AM4/17/18
to jenkinsc...@googlegroups.com
Andrew Bayer started work on Bug JENKINS-50833
 
Change By: Andrew Bayer
Status: Open In Progress

andrew.bayer@gmail.com (JIRA)

unread,
Apr 17, 2018, 9:52:02 AM4/17/18
to jenkinsc...@googlegroups.com

andrew.bayer@gmail.com (JIRA)

unread,
Apr 17, 2018, 9:52:03 AM4/17/18
to jenkinsc...@googlegroups.com

andrew.bayer@gmail.com (JIRA)

unread,
Apr 17, 2018, 12:26:03 PM4/17/18
to jenkinsc...@googlegroups.com
 

Merged, releasing in Declarative 1.2.9 later today.

Change By: Andrew Bayer
Status: In Review Resolved
Resolution: Fixed

scm_issue_link@java.net (JIRA)

unread,
Apr 17, 2018, 12:26:03 PM4/17/18
to jenkinsc...@googlegroups.com
SCM/JIRA link daemon commented on Bug JENKINS-50833
 
Re: NoSuchMethodError causing Pipeline editor to not see agent settings

Code changed in jenkins
User: Andrew Bayer
Path:
pipeline-model-definition/src/main/java/org/jenkinsci/plugins/pipeline/modeldefinition/generator/AgentDirective.java
pipeline-model-extensions/src/main/java/org/jenkinsci/plugins/pipeline/modeldefinition/agent/DeclarativeAgentDescriptor.java
http://jenkins-ci.org/commit/pipeline-model-definition-plugin/6b0e8f283437061169ae87dab25d44175e0afad0
Log:
[FIXED JENKINS-50833] Revert DeclarativeAgentDescriptor.all() signature

bitwiseman@gmail.com (JIRA)

unread,
Oct 22, 2019, 11:24:39 PM10/22/19
to jenkinsc...@googlegroups.com
Liam Newman closed an issue as Fixed
 

Bulk closing resolved issues.

Change By: Liam Newman
Status: Resolved Closed
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages