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

NullPointerExceptions about templates in various places

      I upgraded to v2.8 and since then I'm getting NPEs in various places, I believe on screens or operations related to slave labels.

      In my Jenkins log I get one of those every few seconds:

      Dec 17, 2015 3:20:42 PM hudson.triggers.SafeTimerTask run
      SEVERE: Timer task hudson.slaves.NodeProvisioner$NodeProvisionerInvoker@2ae01440 failed
      java.lang.NullPointerException
              at org.jenkinsci.plugins.vSphereCloud.getTemplate(vSphereCloud.java:176)
              at org.jenkinsci.plugins.vSphereCloud.canProvision(vSphereCloud.java:233)
              at hudson.model.Label.getClouds(Label.java:226)
              at hudson.model.Label.isEmpty(Label.java:430)
              at jenkins.model.Jenkins.getLabels(Jenkins.java:1619)
              at hudson.slaves.NodeProvisioner$NodeProvisionerInvoker.doRun(NodeProvisioner.java:779)
              at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:51)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
              at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      

      I get a similar exception when I delete a node for example.

      Some screens that need to list node labels fail to do so, for example when creating a matrix project where one of the axis is the node, the list of nodes and labels just stays empty. This exception pops up in the logs:

      Dec 17, 2015 3:21:35 PM hudson.ExpressionFactory2$JexlExpression evaluate
      WARNING: Caught exception evaluating: app.labels.size() gt 1 || app.clouds.size() gt 0 || (it.assignedLabel!=null and it.assignedLabel!=app.selfLabel) in /job/wca-reporter/configure. Reason: java.lang.reflect.InvocationTargetException
      java.lang.reflect.InvocationTargetException
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	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.ASTGTNode.value(ASTGTNode.java:62)
      	at org.apache.commons.jexl.parser.ASTOrNode.value(ASTOrNode.java:55)
      	at org.apache.commons.jexl.parser.ASTOrNode.value(ASTOrNode.java:55)
      	at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:54)
      	at org.apache.commons.jexl.parser.ASTExpressionExpression.value(ASTExpressionExpression.java:56)
      	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.evaluateAsBoolean(ExpressionSupport.java:71)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:97)
      	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.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.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.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.TagSupport.invokeBody(TagSupport.java:161)
      	at org.apache.commons.jelly.tags.core.WhenTag.doTag(WhenTag.java:46)
      	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.TagSupport.invokeBody(TagSupport.java:161)
      	at org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:38)
      	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$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.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.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
      	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)
      	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.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.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.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.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.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
      	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.JellyFacet$1.dispatch(JellyFacet.java:95)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:123)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      	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:135)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      	at org.eclipse.jetty.server.Server.handle(Server.java:370)
      	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
      	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
      	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
      	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
      	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
      	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
      	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.NullPointerException
      	at org.jenkinsci.plugins.vSphereCloud.getTemplate(vSphereCloud.java:176)
      	at org.jenkinsci.plugins.vSphereCloud.canProvision(vSphereCloud.java:233)
      	at hudson.model.Label.getClouds(Label.java:226)
      	at hudson.model.Label.isEmpty(Label.java:430)
      	at jenkins.model.Jenkins.getLabels(Jenkins.java:1619)
      	... 164 more
      

      In terms of vSphere config, I have 3 vSphere hosts configured, none of them have a template defined.

          [JENKINS-32112] NullPointerExceptions about templates in various places

          I don't specifically see any comment on this issue - I was seeing this in JENKINS-32098 and resolution for me was to re-save in jenkins/manage jenkins/configure system to get appropriate values set in the vsphere cloud/advanced/number of slaves fields.

          Nathan Neulinger added a comment - I don't specifically see any comment on this issue - I was seeing this in JENKINS-32098 and resolution for me was to re-save in jenkins/manage jenkins/configure system to get appropriate values set in the vsphere cloud/advanced/number of slaves fields.

          Hi, I think I tried that but it didn't help. I had to downgrade to 2.6 as it was affecting our build so I can't test it anymore, sorry.

          Nicolas Guillaumin added a comment - Hi, I think I tried that but it didn't help. I had to downgrade to 2.6 as it was affecting our build so I can't test it anymore, sorry.

          Max Trunov added a comment - - edited

          I had same problems.
          I didn't disable\enable\delete slave nodes with 2.8 version of this plugin.
          Job option 'Restrict where this project can be run' was missing too.
          I had downgrade to 2.7 version and no problem anymore.

          Max Trunov added a comment - - edited I had same problems. I didn't disable\enable\delete slave nodes with 2.8 version of this plugin. Job option 'Restrict where this project can be run' was missing too. I had downgrade to 2.7 version and no problem anymore.

          I also noticed this error after upgrading from Jenkins 1.638 to 1.644 (vCloud plugin from 2.7 to 2.9).

          > resolution for me was to re-save in jenkins/manage jenkins/configure system to get appropriate values set in the vsphere cloud/advanced/number of slaves fields.

          Similarly, I was able to workaround the issue by:
          1. Go to Jenkins, Manage Jenkins, Configure
          2. Scroll down to Cloud, vSphere Cloud
          3. In Slave Templates, press Add
          (one may leave the contents blank)
          4. Press Save to persist configuration

          Back to project configuration, no more ERROR displayed.

          Helder Magalhães added a comment - I also noticed this error after upgrading from Jenkins 1.638 to 1.644 (vCloud plugin from 2.7 to 2.9 ). > resolution for me was to re-save in jenkins/manage jenkins/configure system to get appropriate values set in the vsphere cloud/advanced/number of slaves fields. Similarly, I was able to workaround the issue by: 1. Go to Jenkins , Manage Jenkins , Configure 2. Scroll down to Cloud , vSphere Cloud 3. In Slave Templates , press Add (one may leave the contents blank) 4. Press Save to persist configuration Back to project configuration, no more ERROR displayed.

          In my environment Jenkins fails on vsphere-cloud plugin upgrade from v2.7 to any later version (currently v.2.13) with following error:

          hudson.util.HudsonFailedToLoad: org.jvnet.hudson.reactor.ReactorException: java.lang.NullPointerException
          at hudson.WebAppMain$3.run(WebAppMain.java:239)
          Caused by: org.jvnet.hudson.reactor.ReactorException: java.lang.NullPointerException
          at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:269)
          at jenkins.InitReactorRunner.run(InitReactorRunner.java:44)
          at jenkins.model.Jenkins.executeReactor(Jenkins.java:969)
          at jenkins.model.Jenkins.<init>(Jenkins.java:850)
          at hudson.model.Hudson.<init>(Hudson.java:85)
          at hudson.model.Hudson.<init>(Hudson.java:81)
          at hudson.WebAppMain$3.run(WebAppMain.java:227)
          Caused by: java.lang.NullPointerException
          at org.jenkinsci.plugins.vSphereCloud.getTemplate(vSphereCloud.java:176)
          at org.jenkinsci.plugins.vSphereCloud.canProvision(vSphereCloud.java:233)
          at hudson.model.Label.getClouds(Label.java:227)
          at hudson.model.Label.isEmpty(Label.java:435)
          at jenkins.model.Jenkins.trimLabels(Jenkins.java:1837)
          at jenkins.model.Nodes$7.run(Nodes.java:305)
          at hudson.model.Queue._withLock(Queue.java:1312)
          at hudson.model.Queue.withLock(Queue.java:1189)
          at jenkins.model.Nodes.load(Nodes.java:295)
          at jenkins.model.Jenkins$17.run(Jenkins.java:2744)
          at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
          at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282)
          at jenkins.model.Jenkins$8.runTask(Jenkins.java:958)
          at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210)
          at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
          at java.lang.Thread.run(Thread.java:745)

          Vitalius Marcinkevicius added a comment - In my environment Jenkins fails on vsphere-cloud plugin upgrade from v2.7 to any later version (currently v.2.13) with following error: hudson.util.HudsonFailedToLoad: org.jvnet.hudson.reactor.ReactorException: java.lang.NullPointerException at hudson.WebAppMain$3.run(WebAppMain.java:239) Caused by: org.jvnet.hudson.reactor.ReactorException: java.lang.NullPointerException at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:269) at jenkins.InitReactorRunner.run(InitReactorRunner.java:44) at jenkins.model.Jenkins.executeReactor(Jenkins.java:969) at jenkins.model.Jenkins.<init>(Jenkins.java:850) at hudson.model.Hudson.<init>(Hudson.java:85) at hudson.model.Hudson.<init>(Hudson.java:81) at hudson.WebAppMain$3.run(WebAppMain.java:227) Caused by: java.lang.NullPointerException at org.jenkinsci.plugins.vSphereCloud.getTemplate(vSphereCloud.java:176) at org.jenkinsci.plugins.vSphereCloud.canProvision(vSphereCloud.java:233) at hudson.model.Label.getClouds(Label.java:227) at hudson.model.Label.isEmpty(Label.java:435) at jenkins.model.Jenkins.trimLabels(Jenkins.java:1837) at jenkins.model.Nodes$7.run(Nodes.java:305) at hudson.model.Queue._withLock(Queue.java:1312) at hudson.model.Queue.withLock(Queue.java:1189) at jenkins.model.Nodes.load(Nodes.java:295) at jenkins.model.Jenkins$17.run(Jenkins.java:2744) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) at jenkins.model.Jenkins$8.runTask(Jenkins.java:958) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

          pjdarton added a comment -

          This is caused by a failure to check that the list of templates isn't null before attempting to iterate over them.
          If there's at least one template defined (in each vSphere cloud) then the bug won't appear (which is why that works as a workaround) but for users who aren't using templates that's not ideal...

          I've got a fix for this as part of JENKINS-36878 - if the code changes for that are accepted, this one will be fixed too.

          pjdarton added a comment - This is caused by a failure to check that the list of templates isn't null before attempting to iterate over them. If there's at least one template defined (in each vSphere cloud) then the bug won't appear (which is why that works as a workaround) but for users who aren't using templates that's not ideal... I've got a fix for this as part of JENKINS-36878 - if the code changes for that are accepted, this one will be fixed too.

          Code changed in jenkins
          User: Peter Darton
          Path:
          src/main/java/org/jenkinsci/plugins/vSphereCloud.java
          src/main/java/org/jenkinsci/plugins/vSphereCloudProvisionedSlave.java
          src/main/java/org/jenkinsci/plugins/vSphereCloudSlaveTemplate.java
          src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningAlgorithm.java
          src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningRecord.java
          src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningState.java
          src/test/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningAlgorithmTest.java
          src/test/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningStateTest.java
          http://jenkins-ci.org/commit/vsphere-cloud-plugin/4310c6cfa453fe59882406c821f0bb0c61173d26
          Log:
          Bugfix: JENKINS-36878: vSphere now respects per-slave instance cap.
          Bugfix: JENKINS-32112: NPE bug in vSphere.getTemplate().
          Enhancement: vSphere.java now distributes load over all matching
          templates. This satisfies JENKINS-30203 if Jenkins is configured with a
          template.
          Correction: Jenkins UI no longer offers facility to manually create a
          Cloud-provisioned slave (the cloud provisions those itself). Normal
          vSphere slaves are still manually provisionable.
          Cleaned up logging in vSphere.java.
          Typo in vSphereCloudSlaveTemplate: getNumberOfExceutors ->
          getNumberOfExecutors.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Peter Darton Path: src/main/java/org/jenkinsci/plugins/vSphereCloud.java src/main/java/org/jenkinsci/plugins/vSphereCloudProvisionedSlave.java src/main/java/org/jenkinsci/plugins/vSphereCloudSlaveTemplate.java src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningAlgorithm.java src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningRecord.java src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningState.java src/test/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningAlgorithmTest.java src/test/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningStateTest.java http://jenkins-ci.org/commit/vsphere-cloud-plugin/4310c6cfa453fe59882406c821f0bb0c61173d26 Log: Bugfix: JENKINS-36878 : vSphere now respects per-slave instance cap. Bugfix: JENKINS-32112 : NPE bug in vSphere.getTemplate(). Enhancement: vSphere.java now distributes load over all matching templates. This satisfies JENKINS-30203 if Jenkins is configured with a template. Correction: Jenkins UI no longer offers facility to manually create a Cloud-provisioned slave (the cloud provisions those itself). Normal vSphere slaves are still manually provisionable. Cleaned up logging in vSphere.java. Typo in vSphereCloudSlaveTemplate: getNumberOfExceutors -> getNumberOfExecutors.

          Code changed in jenkins
          User: Jason Swager
          Path:
          src/main/java/org/jenkinsci/plugins/vSphereCloud.java
          src/main/java/org/jenkinsci/plugins/vSphereCloudLauncher.java
          src/main/java/org/jenkinsci/plugins/vSphereCloudProvisionedSlave.java
          src/main/java/org/jenkinsci/plugins/vSphereCloudSlaveTemplate.java
          src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningAlgorithm.java
          src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningRecord.java
          src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningState.java
          src/main/resources/org/jenkinsci/plugins/vSphereCloudSlaveTemplate/config.jelly
          src/test/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningAlgorithmTest.java
          src/test/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningStateTest.java
          http://jenkins-ci.org/commit/vsphere-cloud-plugin/1e87f49a9aeda83f9c0a0306fc4bad6bacff403b
          Log:
          Merge pull request #48 from pjdarton/fix_jenkins_36878

          Fix JENKINS-36878 and JENKINS-32112

          Compare: https://github.com/jenkinsci/vsphere-cloud-plugin/compare/19e12f7c00ca...1e87f49a9aed

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jason Swager Path: src/main/java/org/jenkinsci/plugins/vSphereCloud.java src/main/java/org/jenkinsci/plugins/vSphereCloudLauncher.java src/main/java/org/jenkinsci/plugins/vSphereCloudProvisionedSlave.java src/main/java/org/jenkinsci/plugins/vSphereCloudSlaveTemplate.java src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningAlgorithm.java src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningRecord.java src/main/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningState.java src/main/resources/org/jenkinsci/plugins/vSphereCloudSlaveTemplate/config.jelly src/test/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningAlgorithmTest.java src/test/java/org/jenkinsci/plugins/vsphere/tools/CloudProvisioningStateTest.java http://jenkins-ci.org/commit/vsphere-cloud-plugin/1e87f49a9aeda83f9c0a0306fc4bad6bacff403b Log: Merge pull request #48 from pjdarton/fix_jenkins_36878 Fix JENKINS-36878 and JENKINS-32112 Compare: https://github.com/jenkinsci/vsphere-cloud-plugin/compare/19e12f7c00ca...1e87f49a9aed

          pjdarton added a comment -

          Fixed in the next release (probably 2.14).

          pjdarton added a comment - Fixed in the next release (probably 2.14).

            Unassigned Unassigned
            nguillaumin Nicolas Guillaumin
            Votes:
            6 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: