[JIRA] (JENKINS-37534) java.io.IOException: Failed to write _links

0 views
Skip to first unread message

jdumay@cloudbees.com (JIRA)

unread,
Aug 18, 2016, 8:49:02 PM8/18/16
to jenkinsc...@googlegroups.com
James Dumay created an issue
 
Jenkins / Bug JENKINS-37534
java.io.IOException: Failed to write _links
Issue Type: Bug Bug
Assignee: Vivek Pandey
Components: blueocean-plugin
Created: 2016/Aug/19 12:48 AM
Priority: Critical Critical
Reporter: James Dumay

500 error hitting https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/Blue%20Ocean%20docker%20image/activities/

java.io.IOException: Failed to write _links
	at org.kohsuke.stapler.export.Property.safeGetValue(Property.java:151)
	at org.kohsuke.stapler.export.Property.writeTo(Property.java:126)
	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
	at org.kohsuke.stapler.export.Property.writeValue(Property.java:279)
	at org.kohsuke.stapler.export.Property.writeValue(Property.java:222)
	at org.kohsuke.stapler.export.Property.writeValue(Property.java:168)
	at org.kohsuke.stapler.export.Property.writeTo(Property.java:139)
	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
	at org.kohsuke.stapler.export.Model.writeTo(Model.java:198)
	at org.kohsuke.stapler.ResponseImpl.writeOne(ResponseImpl.java:285)
	at org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:273)
	at hudson.model.Api.doJson(Api.java:211)
	at io.jenkins.blueocean.rest.pageable.PagedResponse$Processor$1.generateResponse(PagedResponse.java:55)
	at org.kohsuke.stapler.HttpResponseRenderer$Default.handleHttpResponse(HttpResponseRenderer.java:124)
	at org.kohsuke.stapler.HttpResponseRenderer$Default.generateResponse(HttpResponseRenderer.java:69)
	at org.kohsuke.stapler.Function.renderResponse(Function.java:119)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:102)
	at org.kohsuke.stapler.IndexDispatcher.dispatch(IndexDispatcher.java:26)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.MetaClass$3.doDispatch(MetaClass.java:196)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.MetaClass$3.doDispatch(MetaClass.java:196)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:686)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
	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:812)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
	at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:249)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
	at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	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:76)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
	at org.eclipse.jetty.server.Server.handle(Server.java:499)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
	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.reflect.InvocationTargetException
	at sun.reflect.GeneratedMethodAccessor346.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.kohsuke.stapler.export.MethodProperty.getValue(MethodProperty.java:66)
	at org.kohsuke.stapler.export.Property.safeGetValue(Property.java:145)
	... 105 more
Caused by: java.lang.NullPointerException
	at com.sonyericsson.rebuild.RebuildAction.isRebuildDisbaled(RebuildAction.java:370)
	at com.sonyericsson.rebuild.RebuildAction.isRebuildAvailable(RebuildAction.java:360)
	at com.sonyericsson.rebuild.RebuildAction.getUrlName(RebuildAction.java:186)
	at io.jenkins.blueocean.service.embedded.rest.ActionProxiesImpl.getUrlName(ActionProxiesImpl.java:33)
	at io.jenkins.blueocean.service.embedded.rest.ActionProxiesImpl.getLink(ActionProxiesImpl.java:43)
	at io.jenkins.blueocean.rest.hal.Links.getOrCreateSelfRef(Links.java:123)
	at io.jenkins.blueocean.rest.hal.Links.<init>(Links.java:52)
	at io.jenkins.blueocean.rest.model.Resource.getLinks(Resource.java:38)
	... 110 more
Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo

mneale@cloudbees.com (JIRA)

unread,
Aug 18, 2016, 8:50:05 PM8/18/16
to jenkinsc...@googlegroups.com
Michael Neale commented on Bug JENKINS-37534
 
Re: java.io.IOException: Failed to write _links

ping Vivek Pandey do you think this is worth lifiing up in priority, as it is more likely to hit people when they try the beta right?

vivek.pandey@gmail.com (JIRA)

unread,
Aug 18, 2016, 8:56:04 PM8/18/16
to jenkinsc...@googlegroups.com

Michael Neale yes. There are already couple more bugs on this 500 error due to NPE coming out from underlying plugins, all coming from action.getUrlName() in ActionProxiesImpl.

I am going to wrap action.getUrlName() in try catch log it on server as SEVERE and return return this value as null in JSON serialization.

mneale@cloudbees.com (JIRA)

unread,
Aug 18, 2016, 9:04:03 PM8/18/16
to jenkinsc...@googlegroups.com

Vivek Pandey ok that sounds good and probably would cover a lot of the problems (obviously those actions don't yet make sense for blue ocean, but when the time comes people will have to dig into them to make them work so that a plugin can support).

Maybe can consider JENKINS-37535 as a way to capture this errors, and roll up that data to see what causes the most problems, and then later on solve them? (just an idea).

jdumay@cloudbees.com (JIRA)

unread,
Aug 18, 2016, 9:05:02 PM8/18/16
to jenkinsc...@googlegroups.com

Vivek Pandey is that because the upstream plugins have bugs with how we are calling out to them? Could we get them to play better with blue ocean?

jdumay@cloudbees.com (JIRA)

unread,
Aug 18, 2016, 9:06:01 PM8/18/16
to jenkinsc...@googlegroups.com
James Dumay updated an issue
 
Change By: James Dumay
Priority: Critical Blocker

mneale@cloudbees.com (JIRA)

unread,
Aug 18, 2016, 9:07:01 PM8/18/16
to jenkinsc...@googlegroups.com
Michael Neale updated an issue
Change By: Michael Neale
Priority: Blocker Critical

mneale@cloudbees.com (JIRA)

unread,
Aug 18, 2016, 9:07:01 PM8/18/16
to jenkinsc...@googlegroups.com
Michael Neale commented on Bug JENKINS-37534
 
Re: java.io.IOException: Failed to write _links

I think its better to only use "blocker" if someone else is literally blocked on it, which isn't the case here AFAICT

vivek.pandey@gmail.com (JIRA)

unread,
Aug 18, 2016, 9:17:01 PM8/18/16
to jenkinsc...@googlegroups.com

Michael Neale ok.

James Dumay Maybe but I thing it maybe because they are throwing NPE in certain conditions (maybe startup or things are not ready yet or some other condition, somewhere down underneath) and our API is failing fast. I click on https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/Blue%20Ocean%20docker%20image/activities/ and don't see any 500. Most of these reported errors are not reproducible and are either startup or some auth expiry situation. Might not be issue after blueocean starts handling auth expiration properly.

So I think, BO api behavior should be to not fail fast, report error and return response that will work just fine. Only a UI extension that needs this action, will find a null in the value and so might not expose its functionality properly or open a bug on the failing plugin if its that critical.

...and remove BLOCKER, its abuse of it Critical yes

vivek.pandey@gmail.com (JIRA)

unread,
Aug 19, 2016, 7:39:01 PM8/19/16
to jenkinsc...@googlegroups.com
Vivek Pandey closed an issue as Duplicate
 

Caused by the same error as reported in JERKINS-36980.

Caused by: java.lang.NullPointerException
at com.sonyericsson.rebuild.RebuildAction.isRebuildDisbaled(RebuildAction.java:370)
at com.sonyericsson.rebuild.RebuildAction.isRebuildAvailable(RebuildAction.java:360)
at com.sonyericsson.rebuild.RebuildAction.getUrlName(RebuildAction.java:186)
at io.jenkins.blueocean.service.embedded.rest.ActionProxiesImpl.getUrlName(ActionProxiesImpl.java:33)
at io.jenkins.blueocean.service.embedded.rest.ActionProxiesImpl.getLink(ActionProxiesImpl.java:43)
at io.jenkins.blueocean.rest.hal.Links.getOrCreateSelfRef(Links.java:123)
at io.jenkins.blueocean.rest.hal.Links.<init>(Links.java:52)
at io.jenkins.blueocean.rest.model.Resource.getLinks(Resource.java:38)

Change By: Vivek Pandey
Status: Open Closed
Resolution: Duplicate
Reply all
Reply to author
Forward
0 new messages