Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-22068

Clicking "Build Now" on Promotion causes hanging promotion and requires Jenkins restart

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • promoted-builds-plugin
    • None
    • VM - Windows Server 2008 R2 64 bit
      4 GB RAM
      2 2.10 GHz processors
      Jenkins Core - 1.530
      Promoted Builds Plugin - 2.13, also tried 2.17

      We came across an issue with promoting a build. Someone had gone into the jobs main page and clicked on "Promotion Status" on the left hand side, clicked on one of the promotions, and then just clicked the "Build Now" on the left side. This caused a promotion to queue up in this window only, not in any other view. The promotions just hangs. When you hover over it, it just says "Started null ago estimated time remaining: null". When clicking on Console output, I get a 404 error. In order to get it to clear, I have to restart the core Jenkins service.

      Normally we promote by clicking on the actual build number and then go to promotion status and then approve it, but I don't think the build now should break like this.

      I understand that doing it through the build now isn't pointing at a specific build so I assume that is why it hangs, but it should maybe grab the latest build when you do it that way, or the build now link should not be an option on that page...

      I have tried updating to the latest promoted plugin of 2.17 as well as the latest Jenkins version of 1.553 with no luck.

      I can submit screen shots if needed.

          [JENKINS-22068] Clicking "Build Now" on Promotion causes hanging promotion and requires Jenkins restart

          Daniel Beck added a comment -

          Unrelated to core.

          Daniel Beck added a comment - Unrelated to core.

          Jan Hudec added a comment -

          The bug 24782 includes a stack-trace. It matches what I've also got.

          I don't however think it really matters why the job crashes. It makes no sense to run the promotion job via the "Build Now" button and the correct fix would be to remove or disable the button. If not possible, the promotion job could be made into parametrized build so it would change to "Build with Parameters" and ask for which build to promote.

          Copying the exception from the gist attached to #24782 here:

          Caught exception evaluating: h.getNearestAncestorUrl(request,it.target) in /job/mem-xxxx/promotion/process/promotionname/1/. Reason: java.lang.NullPointerException 
          java.lang.NullPointerException 
          at hudson.plugins.promoted_builds.Promotion.getTarget(Promotion.java:70) 
          at sun.reflect.GeneratedMethodAccessor1328.invoke(Unknown Source) 
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
          at java.lang.reflect.Method.invoke(Unknown Source) 
          at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125) 
          at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314) 
          at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185) 
          at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75) 
          at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) 
          at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) 
          at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:54) 
          at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:81) 
          at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) 
          at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) 
          at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) 
          at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) 
          at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74) 
          at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61) 
          at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsString(ExpressionSupport.java:46) 
          at org.apache.commons.jelly.expression.CompositeExpression.evaluateAsString(CompositeExpression.java:256) 
          at org.apache.commons.jelly.expression.CompositeExpression.evaluate(CompositeExpression.java:248) 
          at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58) 
          at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) 
          at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) 
          at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) 
          at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) 
          at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) 
          at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) 
          at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) 
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) 
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) 
          at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) 
          at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) 
          at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) 
          at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) 
          at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44) 
          at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) 
          at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) 
          at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63) 
          at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53) 
          at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112) 
          at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127) 
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:717) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
          at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390) 
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
          at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) 
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
          at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390) 
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
          at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) 
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631) 
          at org.kohsuke.stapler.Stapler.service(Stapler.java:225) 
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
          at hudson.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:100) 
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96) 
          at hudson.plugins.cloudbees.account.EC2CloudListener$2.doFilter(EC2CloudListener.java:57) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:208) 
          at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:181) 
          at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86) 
          at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:117) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:89) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at org.jvnet.hudson.plugins.cors.JenkinsCorsFilter.doFilter(JenkinsCorsFilter.java:42) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) 
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
          at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) 
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) 
          at com.cloudbees.jenkins.plugins.dacsecurity.auth.VerifyHostFilter.doFilter(VerifyHostFilter.java:33) 
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
          at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) 
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
          at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) 
          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 com.cloudbees.jenkins.plugins.dacsecurity.auth.CloudBeesBasicAuthFilter.doFilter(CloudBeesBasicAuthFilter.java:122) 
          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:164) 
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470) 
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
          at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554) 
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
          at java.lang.Thread.run(Unknown Source)
          
          Sep 16, 2014 2:45:29 PM WARNING hudson.ExpressionFactory2$JexlExpression evaluate 
          Caught exception evaluating: build.url in /job/mem-xxx/promotion/process/promotionname/1/. Reason: java.lang.reflect.InvocationTargetException 
          java.lang.reflect.InvocationTargetException 
          at sun.reflect.GeneratedMethodAccessor949.invoke(Unknown Source) 
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
          at java.lang.reflect.Method.invoke(Unknown Source) 
          at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125) 
          at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314) 
          at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185) 
          at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75) 
          at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) 
          at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) 
          at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) 
          at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) 
          at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74) 
          at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61) 
          at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsString(ExpressionSupport.java:46) 
          at org.apache.commons.jelly.expression.CompositeExpression.evaluateAsString(CompositeExpression.java:256) 
          at org.apache.commons.jelly.expression.CompositeExpression.evaluate(CompositeExpression.java:248) 
          at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) 
          at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) 
          at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) 
          at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) 
          at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) 
          at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) 
          at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) 
          at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) 
          at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) 
          at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) 
          at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) 
          at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44) 
          at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) 
          at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) 
          at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63) 
          at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53) 
          at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112) 
          at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127) 
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:717) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
          at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390) 
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
          at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) 
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
          at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390) 
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
          at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) 
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631) 
          at org.kohsuke.stapler.Stapler.service(Stapler.java:225) 
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
          at hudson.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:100) 
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96) 
          at hudson.plugins.cloudbees.account.EC2CloudListener$2.doFilter(EC2CloudListener.java:57) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:208) 
          at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:181) 
          at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86) 
          at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:117) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:89) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at org.jvnet.hudson.plugins.cors.JenkinsCorsFilter.doFilter(JenkinsCorsFilter.java:42) 
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
          at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) 
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
          at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) 
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) 
          at com.cloudbees.jenkins.plugins.dacsecurity.auth.VerifyHostFilter.doFilter(VerifyHostFilter.java:33) 
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
          at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) 
          at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
          at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) 
          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 com.cloudbees.jenkins.plugins.dacsecurity.auth.CloudBeesBasicAuthFilter.doFilter(CloudBeesBasicAuthFilter.java:122) 
          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:164) 
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470) 
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
          at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554) 
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
          at java.lang.Thread.run(Unknown Source) 
          Caused by: java.lang.NullPointerException 
          at hudson.plugins.promoted_builds.Promotion.getTarget(Promotion.java:70) 
          at hudson.plugins.promoted_builds.Promotion.getUrl(Promotion.java:79) 
          ... 144 more
          

          Jan Hudec added a comment - The bug 24782 includes a stack-trace. It matches what I've also got. I don't however think it really matters why the job crashes. It makes no sense to run the promotion job via the "Build Now" button and the correct fix would be to remove or disable the button. If not possible, the promotion job could be made into parametrized build so it would change to "Build with Parameters" and ask for which build to promote. Copying the exception from the gist attached to #24782 here: Caught exception evaluating: h.getNearestAncestorUrl(request,it.target) in /job/mem-xxxx/promotion/process/promotionname/1/. Reason: java.lang.NullPointerException java.lang.NullPointerException at hudson.plugins.promoted_builds.Promotion.getTarget(Promotion.java:70) at sun.reflect.GeneratedMethodAccessor1328.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125) at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314) at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185) at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75) at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:54) at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:81) at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74) at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61) at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsString(ExpressionSupport.java:46) at org.apache.commons.jelly.expression.CompositeExpression.evaluateAsString(CompositeExpression.java:256) at org.apache.commons.jelly.expression.CompositeExpression.evaluate(CompositeExpression.java:248) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53) at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112) at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:717) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631) at org.kohsuke.stapler.Stapler.service(Stapler.java:225) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:100) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96) at hudson.plugins.cloudbees.account.EC2CloudListener$2.doFilter(EC2CloudListener.java:57) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:208) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:181) at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86) at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:117) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:89) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at org.jvnet.hudson.plugins.cors.JenkinsCorsFilter.doFilter(JenkinsCorsFilter.java:42) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at com.cloudbees.jenkins.plugins.dacsecurity.auth.VerifyHostFilter.doFilter(VerifyHostFilter.java:33) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) 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 com.cloudbees.jenkins.plugins.dacsecurity.auth.CloudBeesBasicAuthFilter.doFilter(CloudBeesBasicAuthFilter.java:122) 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:164) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source) Sep 16, 2014 2:45:29 PM WARNING hudson.ExpressionFactory2$JexlExpression evaluate Caught exception evaluating: build.url in /job/mem-xxx/promotion/process/promotionname/1/. Reason: java.lang.reflect.InvocationTargetException java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor949.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125) at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314) at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185) at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75) at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74) at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61) at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsString(ExpressionSupport.java:46) at org.apache.commons.jelly.expression.CompositeExpression.evaluateAsString(CompositeExpression.java:256) at org.apache.commons.jelly.expression.CompositeExpression.evaluate(CompositeExpression.java:248) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53) at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112) at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:717) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631) at org.kohsuke.stapler.Stapler.service(Stapler.java:225) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:100) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96) at hudson.plugins.cloudbees.account.EC2CloudListener$2.doFilter(EC2CloudListener.java:57) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:208) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:181) at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86) at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:117) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:89) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at org.jvnet.hudson.plugins.cors.JenkinsCorsFilter.doFilter(JenkinsCorsFilter.java:42) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at com.cloudbees.jenkins.plugins.dacsecurity.auth.VerifyHostFilter.doFilter(VerifyHostFilter.java:33) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) 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 com.cloudbees.jenkins.plugins.dacsecurity.auth.CloudBeesBasicAuthFilter.doFilter(CloudBeesBasicAuthFilter.java:122) 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:164) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at hudson.plugins.promoted_builds.Promotion.getTarget(Promotion.java:70) at hudson.plugins.promoted_builds.Promotion.getUrl(Promotion.java:79) ... 144 more

          Kevin Yu added a comment -

          Seeing the exact issue on Jenkins ver. 2.17 Plugin 2.27

          Kevin Yu added a comment - Seeing the exact issue on Jenkins ver. 2.17 Plugin 2.27

          Hi there. I had the same issue on CloudBees Jenkins Enterprise 2.60.3.1-rolling and promoted builds plugin version 2.29. The hanging build has been 're-scheduled after failure' after the original promoted build was promoted.

          I found two exceptions at the Jenkins log:

          Sep 12, 2017 12:20:34 PM WARNING hudson.ExpressionFactory2$JexlExpression evaluate
          Caught exception evaluating: h.getNearestAncestorUrl(request,it.target) in /job/TechOps/job/akamai-pono-ci/promotion/process/2.-%20Promote%20to%20Prod/9/. Reason: java.lang.NullPointerException
          java.lang.NullPointerException
          	at hudson.plugins.promoted_builds.Promotion.getTarget(Promotion.java:87)
          	at sun.reflect.GeneratedMethodAccessor7466.invoke(Unknown Source)
          	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          	at java.lang.reflect.Method.invoke(Method.java:498)
          	at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
          	at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
          	at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
          	at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
          	at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
          	at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
          	at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:54)
          	at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:81)
          	at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
          	at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
          	at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
          	at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
          	at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
          	at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61)
          	at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsString(ExpressionSupport.java:46)
          	at org.apache.commons.jelly.expression.CompositeExpression.evaluateAsString(CompositeExpression.java:256)
          	at org.apache.commons.jelly.expression.CompositeExpression.evaluate(CompositeExpression.java:248)
          	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58)
          	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
          	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
          	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
          	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
          	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
          	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
          	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
          	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
          	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
          	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
          	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
          	at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44)
          	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
          	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
          	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
          	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
          	at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
          	at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:140)
          	at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30)
          	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$5.doDispatch(MetaClass.java:248)
          	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$5.doDispatch(MetaClass.java:248)
          	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$5.doDispatch(MetaClass.java:248)
          	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.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 com.cloudbees.jenkins.ha.HAHealthCheckFilter.doFilter(HAHealthCheckFilter.java:35)
          	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
          	at org.jenkinsci.plugins.corsfilter.AccessControlsFilter.doFilter(AccessControlsFilter.java:79)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:50)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at com.smartcodeltd.jenkinsci.plugin.assetbundler.filters.LessCSS.doFilter(LessCSS.java:46)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter._doFilter(OfflineSecurityRealmFilter.java:95)
          	at com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter.doFilter(OfflineSecurityRealmFilter.java:70)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at com.cloudbees.opscenter.security.ClusterSessionFilter._doFilter(ClusterSessionFilter.java:69)
          	at com.cloudbees.opscenter.security.ClusterSessionFilter.doFilter(ClusterSessionFilter.java:44)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:237)
          	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:209)
          	at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88)
          	at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:113)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
          	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:138)
          	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:92)
          	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: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)
          
          Sep 12, 2017 12:20:34 PM WARNING hudson.ExpressionFactory2$JexlExpression evaluate
          Caught exception evaluating: build.url in /job/TechOps/job/akamai-pono-ci/promotion/process/2.-%20Promote%20to%20Prod/9/. Reason: java.lang.reflect.InvocationTargetException
          java.lang.NullPointerException
          	at hudson.plugins.promoted_builds.Promotion.getTarget(Promotion.java:87)
          	at hudson.plugins.promoted_builds.Promotion.getUrl(Promotion.java:96)
          Caused: java.lang.reflect.InvocationTargetException
          	at sun.reflect.GeneratedMethodAccessor6759.invoke(Unknown Source)
          	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          	at java.lang.reflect.Method.invoke(Method.java:498)
          	at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
          	at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
          	at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
          	at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
          	at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
          	at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
          	at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
          	at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
          	at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
          	at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61)
          	at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsString(ExpressionSupport.java:46)
          	at org.apache.commons.jelly.expression.CompositeExpression.evaluateAsString(CompositeExpression.java:256)
          	at org.apache.commons.jelly.expression.CompositeExpression.evaluate(CompositeExpression.java:248)
          	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
          	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
          	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
          	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
          	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
          	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
          	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
          	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
          	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
          	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
          	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
          	at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44)
          	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
          	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
          	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
          	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
          	at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
          	at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:140)
          	at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30)
          	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$5.doDispatch(MetaClass.java:248)
          	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$5.doDispatch(MetaClass.java:248)
          	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$5.doDispatch(MetaClass.java:248)
          	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.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 com.cloudbees.jenkins.ha.HAHealthCheckFilter.doFilter(HAHealthCheckFilter.java:35)
          	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
          	at org.jenkinsci.plugins.corsfilter.AccessControlsFilter.doFilter(AccessControlsFilter.java:79)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:50)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at com.smartcodeltd.jenkinsci.plugin.assetbundler.filters.LessCSS.doFilter(LessCSS.java:46)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter._doFilter(OfflineSecurityRealmFilter.java:95)
          	at com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter.doFilter(OfflineSecurityRealmFilter.java:70)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at com.cloudbees.opscenter.security.ClusterSessionFilter._doFilter(ClusterSessionFilter.java:69)
          	at com.cloudbees.opscenter.security.ClusterSessionFilter.doFilter(ClusterSessionFilter.java:44)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:237)
          	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:209)
          	at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88)
          	at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:113)
          	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
          	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
          	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:138)
          	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:92)
          	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: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)

          I tried to kill the build from the Jenkins script console but couldn't. I dumped the contents of the hudson.plugins.promoted_builds.PromotionProcess and hudson.plugins.promoted_builds.Promotion objects which follow:

          <hudson.plugins.promoted_builds.Promotion@39 builtOn=null workspace=null hudsonVersion=null scm=hudson.scm.NullChangeLogParser@7895dbb4 changeSet=java.lang.ref.WeakReference@1a3599d2 culprits=null buildEnvironments=null runMixIn=hudson.model.AbstractBuild$1@18086082 changeSetLock=java.lang.Object@695975e7 project=hudson.plugins.promoted_builds.PromotionProcess@2400a6dc[TechOps/akamai-pono-ci/promotion/2.- Promote to Prod] number=9 queueId=4980 previousBuild=null nextBuild=null previousBuildInProgress=null id=null timestamp=1505147774682 startTime=0 result=null description=null displayName=null state=NOT_STARTED duration=0 charset=null keepLog=false runner=null artifactManager=null actions=[com.chikli.hudson.plugin.naginator.NaginatorAction@6bf211b3, hudson.plugins.promoted_builds.Promotion$PromotionParametersAction@54319372, hudson.model.CauseAction@1148b880, hudson.model.CauseAction@5d3fee16, io.jenkins.blueocean.service.embedded.BlueOceanUrlAction@6689943, io.jenkins.blueocean.service.embedded.BlueOceanUrlAction@6689943]>
          
          <hudson.plugins.promoted_builds.Promotion@39 builtOn=null workspace=null hudsonVersion=null scm=hudson.scm.NullChangeLogParser@7895dbb4 changeSet=java.lang.ref.WeakReference@1a3599d2 culprits=null buildEnvironments=null runMixIn=hudson.model.AbstractBuild$1@18086082 changeSetLock=java.lang.Object@695975e7 project=hudson.plugins.promoted_builds.PromotionProcess@2400a6dc[TechOps/akamai-pono-ci/promotion/2.- Promote to Prod] number=9 queueId=4980 previousBuild=null nextBuild=null previousBuildInProgress=null id=null timestamp=1505147774682 startTime=0 result=null description=null displayName=null state=NOT_STARTED duration=0 charset=null keepLog=false runner=null artifactManager=null actions=[com.chikli.hudson.plugin.naginator.NaginatorAction@6bf211b3, hudson.plugins.promoted_builds.Promotion$PromotionParametersAction@54319372, hudson.model.CauseAction@1148b880, hudson.model.CauseAction@5d3fee16, io.jenkins.blueocean.service.embedded.BlueOceanUrlAction@6689943, io.jenkins.blueocean.service.embedded.BlueOceanUrlAction@6689943]>
          

           From the Promotion object, it can be observed the build state is NOT_STARTED, therefore there's no executable thread associated with this build, confirmed by the runner property being null (runner=null).

          The script I wrote to dump the contents of these object follows:

          import hudson.plugins.promoted_builds.*
          
          def jenkins = Jenkins.getInstance()
          def jobs = jenkins.getAllItems(Project.class)
          jobs.each() {  job ->
              if (job.getFullName().equalsIgnoreCase("TechOps/akamai-pono-ci"))
              {
                  x = job._getRuns()
                  x.each { id, y ->
                      if (id == 79) { 
                          y.actions.each { a ->
                              if ( a instanceof hudson.plugins.promoted_builds.PromotedBuildAction ) {
                                  a.statuses.each { s ->
                                      if (s.name.equalsIgnoreCase("2.- Promote to Prod")) {
                                          def proc = s.getProcess()
                                          println(proc.dump())
                                          println("------------------------------")
                                          proc.getBuilds().each { b ->
                                              if (b.number == 9) {
                                                  println(b.dump())
                                              }
                                          }
                                       }
                                  }
                              }
                         } 
                     }
                 }
              }
          }
          

          I'm looking for a way to remove the build from the build history that shows up on the left hand side, probably by modifying the script above.

           I have a few questions for you guys:

          • Do you know how to remove the Promotion object from the PromotedBuildAction object that contains it? Can the method removeFromList from PromotedBuildAction be used?
          • What workarounds have you found to prevent this issue from happening?

          This is a screenshot from the build history mentioned before, you can see bulid # 9 is the stuck build:

          Thanks!

           

          Nicolas Arnaud added a comment - Hi there. I had the same issue on CloudBees Jenkins Enterprise 2.60.3.1-rolling and promoted builds plugin version 2.29. The hanging build has been 're-scheduled after failure' after the original promoted build was promoted. I found two exceptions at the Jenkins log: Sep 12, 2017 12:20:34 PM WARNING hudson.ExpressionFactory2$JexlExpression evaluate Caught exception evaluating: h.getNearestAncestorUrl(request,it.target) in /job/TechOps/job/akamai-pono-ci/promotion/process/2.-%20Promote%20to%20Prod/9/. Reason: java.lang.NullPointerException java.lang.NullPointerException at hudson.plugins.promoted_builds.Promotion.getTarget(Promotion.java:87) at sun.reflect.GeneratedMethodAccessor7466.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125) at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314) at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185) at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75) at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:54) at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:81) at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74) at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61) at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsString(ExpressionSupport.java:46) at org.apache.commons.jelly.expression.CompositeExpression.evaluateAsString(CompositeExpression.java:256) at org.apache.commons.jelly.expression.CompositeExpression.evaluate(CompositeExpression.java:248) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53) at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112) at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:140) at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30) 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$5.doDispatch(MetaClass.java:248) 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$5.doDispatch(MetaClass.java:248) 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$5.doDispatch(MetaClass.java:248) 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.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 com.cloudbees.jenkins.ha.HAHealthCheckFilter.doFilter(HAHealthCheckFilter.java:35) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135) at org.jenkinsci.plugins.corsfilter.AccessControlsFilter.doFilter(AccessControlsFilter.java:79) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:50) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at com.smartcodeltd.jenkinsci.plugin.assetbundler.filters.LessCSS.doFilter(LessCSS.java:46) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter._doFilter(OfflineSecurityRealmFilter.java:95) at com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter.doFilter(OfflineSecurityRealmFilter.java:70) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at com.cloudbees.opscenter.security.ClusterSessionFilter._doFilter(ClusterSessionFilter.java:69) at com.cloudbees.opscenter.security.ClusterSessionFilter.doFilter(ClusterSessionFilter.java:44) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:237) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:209) at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88) at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:113) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59) 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:138) 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:92) 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: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) Sep 12, 2017 12:20:34 PM WARNING hudson.ExpressionFactory2$JexlExpression evaluate Caught exception evaluating: build.url in /job/TechOps/job/akamai-pono-ci/promotion/process/2.-%20Promote%20to%20Prod/9/. Reason: java.lang.reflect.InvocationTargetException java.lang.NullPointerException at hudson.plugins.promoted_builds.Promotion.getTarget(Promotion.java:87) at hudson.plugins.promoted_builds.Promotion.getUrl(Promotion.java:96) Caused: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor6759.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125) at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314) at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185) at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75) at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74) at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61) at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsString(ExpressionSupport.java:46) at org.apache.commons.jelly.expression.CompositeExpression.evaluateAsString(CompositeExpression.java:256) at org.apache.commons.jelly.expression.CompositeExpression.evaluate(CompositeExpression.java:248) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120) at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53) at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112) at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:140) at org.kohsuke.stapler.IndexViewDispatcher.dispatch(IndexViewDispatcher.java:30) 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$5.doDispatch(MetaClass.java:248) 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$5.doDispatch(MetaClass.java:248) 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$5.doDispatch(MetaClass.java:248) 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.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 com.cloudbees.jenkins.ha.HAHealthCheckFilter.doFilter(HAHealthCheckFilter.java:35) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135) at org.jenkinsci.plugins.corsfilter.AccessControlsFilter.doFilter(AccessControlsFilter.java:79) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:50) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at com.smartcodeltd.jenkinsci.plugin.assetbundler.filters.LessCSS.doFilter(LessCSS.java:46) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter._doFilter(OfflineSecurityRealmFilter.java:95) at com.cloudbees.opscenter.client.plugin.OfflineSecurityRealmFilter.doFilter(OfflineSecurityRealmFilter.java:70) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at com.cloudbees.opscenter.security.ClusterSessionFilter._doFilter(ClusterSessionFilter.java:69) at com.cloudbees.opscenter.security.ClusterSessionFilter.doFilter(ClusterSessionFilter.java:44) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:237) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:209) at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88) at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:113) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59) 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:138) 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:92) 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: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) I tried to kill the build from the Jenkins script console but couldn't. I dumped the contents of the hudson.plugins.promoted_builds.PromotionProcess and hudson.plugins.promoted_builds.Promotion objects which follow: <hudson.plugins.promoted_builds.Promotion@39 builtOn= null workspace= null hudsonVersion= null scm=hudson.scm.NullChangeLogParser@7895dbb4 changeSet=java.lang.ref.WeakReference@1a3599d2 culprits= null buildEnvironments= null runMixIn=hudson.model.AbstractBuild$1@18086082 changeSetLock=java.lang. Object @695975e7 project=hudson.plugins.promoted_builds.PromotionProcess@2400a6dc[TechOps/akamai-pono-ci/promotion/2.- Promote to Prod] number=9 queueId=4980 previousBuild= null nextBuild= null previousBuildInProgress= null id= null timestamp=1505147774682 startTime=0 result= null description= null displayName= null state=NOT_STARTED duration=0 charset= null keepLog= false runner= null artifactManager= null actions=[com.chikli.hudson.plugin.naginator.NaginatorAction@6bf211b3, hudson.plugins.promoted_builds.Promotion$PromotionParametersAction@54319372, hudson.model.CauseAction@1148b880, hudson.model.CauseAction@5d3fee16, io.jenkins.blueocean.service.embedded.BlueOceanUrlAction@6689943, io.jenkins.blueocean.service.embedded.BlueOceanUrlAction@6689943]> <hudson.plugins.promoted_builds.Promotion@39 builtOn= null workspace= null hudsonVersion= null scm=hudson.scm.NullChangeLogParser@7895dbb4 changeSet=java.lang.ref.WeakReference@1a3599d2 culprits= null buildEnvironments= null runMixIn=hudson.model.AbstractBuild$1@18086082 changeSetLock=java.lang. Object @695975e7 project=hudson.plugins.promoted_builds.PromotionProcess@2400a6dc[TechOps/akamai-pono-ci/promotion/2.- Promote to Prod] number=9 queueId=4980 previousBuild= null nextBuild= null previousBuildInProgress= null id= null timestamp=1505147774682 startTime=0 result= null description= null displayName= null state=NOT_STARTED duration=0 charset= null keepLog= false runner= null artifactManager= null actions=[com.chikli.hudson.plugin.naginator.NaginatorAction@6bf211b3, hudson.plugins.promoted_builds.Promotion$PromotionParametersAction@54319372, hudson.model.CauseAction@1148b880, hudson.model.CauseAction@5d3fee16, io.jenkins.blueocean.service.embedded.BlueOceanUrlAction@6689943, io.jenkins.blueocean.service.embedded.BlueOceanUrlAction@6689943]>  From the Promotion object, it can be observed the build state is NOT_STARTED, therefore there's no executable thread associated with this build, confirmed by the runner property being null (runner=null). The script I wrote to dump the contents of these object follows: import hudson.plugins.promoted_builds.* def jenkins = Jenkins.getInstance() def jobs = jenkins.getAllItems(Project.class) jobs.each() { job -> if (job.getFullName().equalsIgnoreCase( "TechOps/akamai-pono-ci" )) { x = job._getRuns() x.each { id, y -> if (id == 79) { y.actions.each { a -> if ( a instanceof hudson.plugins.promoted_builds.PromotedBuildAction ) { a.statuses.each { s -> if (s.name.equalsIgnoreCase( "2.- Promote to Prod" )) { def proc = s.getProcess() println(proc.dump()) println( "------------------------------" ) proc.getBuilds().each { b -> if (b.number == 9) { println(b.dump()) } } } } } } } } } } I'm looking for a way to remove the build from the build history that shows up on the left hand side, probably by modifying the script above.  I have a few questions for you guys: Do you know how to remove the Promotion object from the PromotedBuildAction object that contains it? Can the method removeFromList from PromotedBuildAction be used? What workarounds have you found to prevent this issue from happening? This is a screenshot from the build history mentioned before, you can see bulid # 9 is the stuck build: Thanks!  

          Devin Nusbaum added a comment - - edited

          I've submitted a PR to prevent the queue from hanging when a promotion is built or rebuilt directly. The PR also adds a 404 for direct rebuilds, similarly to the way that JENKINS-24782 added a 404 for direct builds.

          Devin Nusbaum added a comment - - edited I've submitted a PR to prevent the queue from hanging when a promotion is built or rebuilt directly. The PR also adds a 404 for direct rebuilds, similarly to the way that JENKINS-24782 added a 404 for direct builds.

          Code changed in jenkins
          User: Devin Nusbaum
          Path:
          pom.xml
          src/main/java/hudson/plugins/promoted_builds/Promotion.java
          src/main/java/hudson/plugins/promoted_builds/PromotionRebuildValidator.java
          src/test/java/hudson/plugins/promoted_builds/PromotionRebuildValidatorTest.java
          src/test/java/hudson/plugins/promoted_builds/PromotionTest.java
          http://jenkins-ci.org/commit/promoted-builds-plugin/043d1a564f53c25f050ed2871f72135cbb331c6f
          Log:
          JENKINS-22068 Fail promotion builds instead of hanging when a promotion is built/rebuilt directly (#107)

          • Prevent RebuildAction from being added to future promotions
          • Remove deserialized RebuildActions from Promotions
          • Make promotion builds fail instead of hang when there is no target, and keep promotions from being rebuilt directly
          • Keep related code grouped together
          • Add test for PromotionRebuildValidator
          • Add logging to post2 and move null check to start of method
          • Add test asserting that rebuilding a promotion directly throws a 404

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Devin Nusbaum Path: pom.xml src/main/java/hudson/plugins/promoted_builds/Promotion.java src/main/java/hudson/plugins/promoted_builds/PromotionRebuildValidator.java src/test/java/hudson/plugins/promoted_builds/PromotionRebuildValidatorTest.java src/test/java/hudson/plugins/promoted_builds/PromotionTest.java http://jenkins-ci.org/commit/promoted-builds-plugin/043d1a564f53c25f050ed2871f72135cbb331c6f Log: JENKINS-22068 Fail promotion builds instead of hanging when a promotion is built/rebuilt directly (#107) Prevent RebuildAction from being added to future promotions Remove deserialized RebuildActions from Promotions Make promotion builds fail instead of hang when there is no target, and keep promotions from being rebuilt directly Keep related code grouped together Add test for PromotionRebuildValidator Add logging to post2 and move null check to start of method Add test asserting that rebuilding a promotion directly throws a 404

          Oleg Nenashev added a comment -

          The fix has been released in 2.30

          Oleg Nenashev added a comment - The fix has been released in 2.30

            dnusbaum Devin Nusbaum
            kt Kevin Thieling
            Votes:
            8 Vote for this issue
            Watchers:
            15 Start watching this issue

              Created:
              Updated:
              Resolved: