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

Unable to add toollocations to the swarm slave command line

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • swarm-plugin
    • None
    • Master:Windows 2012R2 Slave: Windows 2012R2

      When I try to add a tool location to the swarm slave command line my slave doesn't want to connect to jenkins anymore. The following command line is fine:

      java -Xrs -jar "%JENKINS_HOME%\swarm-client-2.0.jar" -executors 1 -labels ".NET AzureSDK AzureUpload TFS Vmware" -master "http://myjenkinsmaster" -fsroot "C:\ci" -mode "exclusive" -showHostName -username "MyUser" -password "@C:\my\key\file\location.txt"

      And the following command line fails:

      java -Xrs -jar "%JENKINS_HOME%\swarm-client-2.0.jar" -executors 1 -labels ".NET AzureSDK AzureUpload TFS Vmware" -t NuGet="c:\tools\nuget" -t powershell="c:\windows\system32\WindowsPowershell\v1.0" -master "http://myjenkinsmaster" -fsroot "C:\ci" -mode "exclusive" -showHostName -username "MyUser" -password "@C:\my\key\file\location.txt"

      If if using only a single tool it still fails. The error that shows up in the log is:

      Failed to create a slave on Jenkins CODE: 500

      <!DOCTYPE html><html><head resURL="/static/ecd35029">

      <title>Jenkins [Jenkins]</title><link rel="stylesheet" href="/static/ecd35029/css/style.css" type="text/css" /><link rel="stylesheet" href="/static/ecd35029/css/color.css" type="text/css" /><link rel="stylesheet" href="/static/ecd35029/css/responsive-grid.css" type="text/css" /><link rel="shortcut icon" href="/static/ecd35029/favicon.ico" type="image/vnd.microsoft.icon" /><script>var isRunAsTest=false; var rootURL=""; var resURL="/static/ecd35029";</script><script src="/static/ecd35029/scripts/prototype.js" type="text/javascript"></script><script src="/static/ecd35029/scripts/behavior.js" type="text/javascript"></script><script src='/adjuncts/ecd35029/org/kohsuke/stapler/bind.js' type='text/javascript'></script><script src="/static/ecd35029/scripts/yui/yahoo/yahoo-min.js"></script><script src="/static/ecd35029/scripts/yui/dom/dom-min.js"></script><script src="/static/ecd35029/scripts/yui/event/event-min.js"></script><script src="/static/ecd35029/scripts/yui/animation/animation-min.js"></script><script src="/static/ecd35029/scripts/yui/dragdrop/dragdrop-min.js"></script><script src="/static/ecd35029/scripts/yui/container/container-min.js"></script><script src="/static/ecd35029/scripts/yui/connection/connection-min.js"></script><script src="/static/ecd35029/scripts/yui/datasource/datasource-min.js"></script><script src="/static/ecd35029/scripts/yui/autocomplete/autocomplete-min.js"></script><script src="/static/ecd35029/scripts/yui/menu/menu-min.js"></script><script src="/static/ecd35029/scripts/yui/element/element-min.js"></script><script src="/static/ecd35029/scripts/yui/button/button-min.js"></script><script src="/static/ecd35029/scripts/yui/storage/storage-min.js"></script><script src="/static/ecd35029/scripts/hudson-behavior.js" type="text/javascript"></script><script src="/static/ecd35029/scripts/sortable.js" type="text/javascript"></script><script>crumb.init(".crumb", "5140ff6cc8552c4b4712bcd934aee836");</script><link rel="stylesheet" href="/static/ecd35029/scripts/yui/container/assets/container.css" type="text/css" /><link rel="stylesheet" href="/static/ecd35029/scripts/yui/assets/skins/sam/skin.css" type="text/css" /><link rel="stylesheet" href="/static/ecd35029/scripts/yui/container/assets/skins/sam/container.css" type="text/css" /><link rel="stylesheet" href="/static/ecd35029/scripts/yui/button/assets/skins/sam/button.css" type="text/css" /><link rel="stylesheet" href="/static/ecd35029/scripts/yui/menu/assets/skins/sam/menu.css" type="text/css" /><meta name="ROBOTS" content="INDEX,NOFOLLOW" /><script src="/adjuncts/ecd35029/org/kohsuke/stapler/jquery/jquery.full.js" type="text/javascript"></script><script>var Q=jQuery.noConflict()</script><script src="/plugin/extended-choice-parameter/js/jquery.min.js" type="text/javascript"></script><script>
      jQuery.noConflict();
      if(window.Prototype && JSON) {
      var _json_stringify = JSON.stringify;
      JSON.stringify = function(value)

      { var _array_tojson = Array.prototype.toJSON; delete Array.prototype.toJSON; var r=_json_stringify(value); Array.prototype.toJSON = _array_tojson; return r; }

      ;
      }
      </script><script src="/plugin/extended-choice-parameter/js/selectize.min.js" type="text/javascript"></script><script src="/plugin/extended-choice-parameter/js/jsoneditor.min.js" type="text/javascript"></script><script src="/plugin/extended-choice-parameter/js/jquery.jsonview.min.js" type="text/javascript"></script><link rel="stylesheet" href="/plugin/extended-choice-parameter/css/jquery.jsonview.css" /><link rel="stylesheet" id="icon_stylesheet" href="/plugin/extended-choice-parameter/css/selectize.css" /><link rel="stylesheet" id="icon_stylesheet" href="/plugin/extended-choice-parameter/css/selectize.bootstrap2.css" /><link rel="stylesheet" id="theme_stylesheet" /><link rel="stylesheet" id="icon_stylesheet" /><script src="/static/ecd35029/scripts/yui/cookie/cookie-min.js"></script></head><body data-model-type="hudson.model.Hudson" id="jenkins" class="yui-skin-sam jenkins-1.625.2" data-version="jenkins-1.625.2"><a href="#skip2content" class="skiplink">Skip to content</a><div id="page-head"><div id="header"><div class="logo"><a id="jenkins-home-link" href="/"><img src="/static/ecd35029/images/headshot.png" alt="title" id="jenkins-head-icon" /><img src="/static/ecd35029/images/title.png" alt="title" width="139" id="jenkins-name-icon" height="34" /></a></div><div class="login"> <a href="/login?from=%2F%2Fplugin%2Fswarm%2FcreateSlave"><b>log in</b></a></div><div class="searchbox hidden-xs"><form method="get" name="search" action="/search/" style="position:relative;" class="no-json"><div id="search-box-minWidth"></div><div id="search-box-sizer"></div><div id="searchform"><input name="q" placeholder="search" id="search-box" class="has-default-text" /> <a href="http://wiki.jenkins-ci.org/display/JENKINS/Search+Box"><img src="/static/ecd35029/images/16x16/help.png" style="width: 16px; height: 16px; " class="icon-help icon-sm" /></a><div id="search-box-completion"></div><script>createSearchBox("/search/");</script></div></form></div></div><div id="breadcrumbBar"><tr id="top-nav"><td id="left-top-nav" colspan="2"><link rel='stylesheet' href='/adjuncts/ecd35029/lib/layout/breadcrumbs.css' type='text/css' /><script src='/adjuncts/ecd35029/lib/layout/breadcrumbs.js' type='text/javascript'></script><div class="top-sticker noedge"><div class="top-sticker-inner"><div id="right-top-nav"></div><ul id="breadcrumbs"><li class="item"><a href="/" class="model-link inside">Jenkins</a></li><li href="/" class="children"></li></ul><div id="breadcrumb-menu-target"></div></div></div></td></tr></div></div><div id="page-body"><div id="side-panel"><div class="task"><a href="http://jenkins-ci.org/" class="task-icon-link"><img src="/static/ecd35029/images/24x24/next.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-next icon-md" /></a> <a href="http://jenkins-ci.org/" class="task-link">Jenkins project</a></div><div class="task"><a href="http://issues.jenkins-ci.org/" class="task-icon-link"><img src="/static/ecd35029/images/24x24/gear2.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-gear2 icon-md" /></a> <a href="http://issues.jenkins-ci.org/" class="task-link">Bug tracker</a></div><div class="task"><a href="http://jenkins-ci.org/content/mailing-lists" class="task-icon-link"><img src="/static/ecd35029/images/24x24/search.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-search icon-md" /></a> <a href="http://jenkins-ci.org/content/mailing-lists" class="task-link">Mailing Lists</a></div><div class="task"><a href="https://twitter.com/jenkinsci" class="task-icon-link"><img src="/static/ecd35029/images/24x24/user.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-user icon-md" /></a> <a href="https://twitter.com/jenkinsci" class="task-link">Twitter: @jenkinsci</a></div></div><div id="main-panel"><a name="skip2content"></a><h1 style="text-align: center"><img src="/static/ecd35029/images/rage.png" width="154" height="179" /><span style="font-size:50px"> Oops!</span></h1><div id="error-description"><p>A problem occurred while processing the request.
      Please check <a href="https://issues.jenkins-ci.org/">our bug tracker</a> to see if a similar problem has already been reported.
      If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem.
      If you think this is a new issue, please file a new issue.
      When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins.
      <a href="http://jenkins-ci.org/content/mailing-lists">The users list</a> might be also useful in understanding what has happened.</p><h2>Stack trace</h2><pre style="margin:2em; clear:both">javax.servlet.ServletException: java.lang.RuntimeException: No tool 'powershell' is defined on Jenkins.
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
      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:132)
      at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:129)
      at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:95)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:129)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:123)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:86)
      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: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.success(BasicHeaderProcessor.java:140)
      at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:82)
      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:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.RuntimeException: No tool 'powershell' is defined on Jenkins.
      at hudson.plugins.swarm.PluginImpl.parseToolLocations(PluginImpl.java:142)
      at hudson.plugins.swarm.PluginImpl.doCreateSlave(PluginImpl.java:57)
      at sun.reflect.GeneratedMethodAccessor368.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:483)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
      at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:121)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      ... 68 more
      </pre></div></div></div><footer><div class="container-fluid"><div class="row"><div class="col-md-6" id="footer"></div><div class="col-md-18"><span class="page_generated">Page generated: 8/12/2015 12:01:38 PM</span><span class="rest_api"><a href="api/">REST API</a></span><span class="jenkins_ver"><a href="http://jenkins-ci.org/">Jenkins ver. 1.625.2</a></span></div></div></div></footer></body></html>
      Retrying in 10 seconds

          [JENKINS-31950] Unable to add toollocations to the swarm slave command line

          Petrik van der Velde created issue -

          Thibault Duchateau added a comment - - edited

          For my part, I'm on Linux and the slave gets connected, but the tool locations are always empty when I inspect the slave using the admin console, thus preventing it from being used by a job.

          I've tested several options:

          1)

          JENKINS_SWARM_CLIENT_JAR_PATH=/root/binairies/jenkins-swarm-client-2.0.jar
          SLAVE_OPTS="${SLAVE_OPTS} -fsroot /root/workspace";
          SLAVE_OPTS="${SLAVE_OPTS} -executors 6";
          SLAVE_OPTS="${SLAVE_OPTS} -labels 'maven3-jdk6'";
          SLAVE_OPTS="${SLAVE_OPTS} -t Maven='${MAVEN_HOME}'";
          SLAVE_OPTS="${SLAVE_OPTS} -t Java6='${JAVA_HOME}'";
          
          exec java ${JAVA_OPTS} -jar ${JENKINS_SWARM_CLIENT_JAR_PATH} ${SLAVE_OPTS} "${@}";
          

          2)

          JENKINS_SWARM_CLIENT_JAR_PATH=/root/binairies/jenkins-swarm-client-2.0.jar
          SLAVE_OPTS="${SLAVE_OPTS} -fsroot /root/workspace";
          SLAVE_OPTS="${SLAVE_OPTS} -executors 6";
          SLAVE_OPTS="${SLAVE_OPTS} -labels 'maven3-jdk6'";
          
          exec java ${JAVA_OPTS} -jar ${JENKINS_SWARM_CLIENT_JAR_PATH} ${SLAVE_OPTS} -t Maven='/root/tools/apache-maven-3.2.5$' -t Java6='/usr/lib/jvm/jdk1.6.0_25' "${@}"
          

          3) Same as 2) but without quotes arount each tool location

          Unfortunately, same result: the "tool locations" section in each slave remains empty and thus unusable.

          Any idea?
          Thanks!

          Thibault Duchateau added a comment - - edited For my part, I'm on Linux and the slave gets connected, but the tool locations are always empty when I inspect the slave using the admin console, thus preventing it from being used by a job. I've tested several options: 1) JENKINS_SWARM_CLIENT_JAR_PATH=/root/binairies/jenkins-swarm-client-2.0.jar SLAVE_OPTS="${SLAVE_OPTS} -fsroot /root/workspace"; SLAVE_OPTS="${SLAVE_OPTS} -executors 6"; SLAVE_OPTS="${SLAVE_OPTS} -labels 'maven3-jdk6'"; SLAVE_OPTS="${SLAVE_OPTS} -t Maven='${MAVEN_HOME}'"; SLAVE_OPTS="${SLAVE_OPTS} -t Java6='${JAVA_HOME}'"; exec java ${JAVA_OPTS} -jar ${JENKINS_SWARM_CLIENT_JAR_PATH} ${SLAVE_OPTS} "${@}"; 2) JENKINS_SWARM_CLIENT_JAR_PATH=/root/binairies/jenkins-swarm-client-2.0.jar SLAVE_OPTS="${SLAVE_OPTS} -fsroot /root/workspace"; SLAVE_OPTS="${SLAVE_OPTS} -executors 6"; SLAVE_OPTS="${SLAVE_OPTS} -labels 'maven3-jdk6'"; exec java ${JAVA_OPTS} -jar ${JENKINS_SWARM_CLIENT_JAR_PATH} ${SLAVE_OPTS} -t Maven='/root/tools/apache-maven-3.2.5$' -t Java6='/usr/lib/jvm/jdk1.6.0_25' "${@}" 3) Same as 2) but without quotes arount each tool location Unfortunately, same result: the "tool locations" section in each slave remains empty and thus unusable. Any idea? Thanks!

          Paul LeTang added a comment -

          It looks like it depends on which version of the CLI jar file you use.

          All of the ones that I've tried seem to do nothing or break.

          Paul LeTang added a comment - It looks like it depends on which version of the CLI jar file you use. All of the ones that I've tried seem to do nothing or break.
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 167422 ] New: JNJira + In-Review [ 182722 ]

          Oleg Nenashev added a comment -

          KK does not maintain this plugin anymore. Moving to unassigned to set the expectation

          Oleg Nenashev added a comment - KK does not maintain this plugin anymore. Moving to unassigned to set the expectation
          Oleg Nenashev made changes -
          Assignee Original: Kohsuke Kawaguchi [ kohsuke ]

            Unassigned Unassigned
            petrikvandervelde Petrik van der Velde
            Votes:
            3 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: