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

New Swarm Slave Wont Work

    XMLWordPrintable

Details

    Description

      I have the latest jenkins and when I try and start a swarm slave with:

      java -jar swarm-client-1.18-jar-with-dependencies.jar

      I get this in the master server log:

      Oct 04, 2014 1:20:11 PM WARNING org.eclipse.jetty.util.log.JavaUtilLog warn
      Error while serving http://jenkins.scropt.com//plugin/swarm/createSlave
      java.lang.reflect.InvocationTargetException
      at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      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:120)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:733)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:863)
      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:733)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:863)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:636)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
      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:96)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
      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.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
      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: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.RuntimeException: No tool '' is defined on Jenkins.
      at hudson.plugins.swarm.PluginImpl.parseToolLocations(PluginImpl.java:98)
      at hudson.plugins.swarm.PluginImpl.doCreateSlave(PluginImpl.java:51)
      ... 55 more

      Attachments

        Issue Links

          Activity

            About the properties file: indeed, didn't know you could escape chars. I'll take a shot at implementing it.
            About the CLI: atm args4j is used to parse them, I'm not sure if it supports dynamic parameters. I'll look into it but I think the properties file will be the preferred way to provide toollocations.

            mr_dfuse Nico Mommaerts added a comment - About the properties file: indeed, didn't know you could escape chars. I'll take a shot at implementing it. About the CLI: atm args4j is used to parse them, I'm not sure if it supports dynamic parameters. I'll look into it but I think the properties file will be the preferred way to provide toollocations.
            danielbeck Daniel Beck added a comment -

            Nico: Or a format/environment that knows how to escape certain characters. Both my suggestions above (properties file and CLI) should support more or less arbitrary file names.

            Re properties files, just define it as:

            Tool.JDK7=/var/lib/...
            Tool.JDK\ 8=/var/lib/...
            ...

            and it should be extensible enough (the tool installations are called JDK7 and JDK 8, respectively, in case it's not obvious).

            There are also XML properties files, but I haven't worked with them, so I don't know whether they're more flexible.

            danielbeck Daniel Beck added a comment - Nico: Or a format/environment that knows how to escape certain characters. Both my suggestions above (properties file and CLI) should support more or less arbitrary file names. Re properties files, just define it as: Tool.JDK7=/var/lib/... Tool.JDK\ 8=/var/lib/... ... and it should be extensible enough (the tool installations are called JDK7 and JDK 8 , respectively, in case it's not obvious). There are also XML properties files, but I haven't worked with them, so I don't know whether they're more flexible.

            Regarding the spaces: there doesn't seem to be any restriction on toolname characters. So no separatorchar will be sufficient.
            The only alternative I see is using a hierarchical file format via https://issues.jenkins-ci.org/browse/JENKINS-9639 (json, xml, yml, whatnot)

            mr_dfuse Nico Mommaerts added a comment - Regarding the spaces: there doesn't seem to be any restriction on toolname characters. So no separatorchar will be sufficient. The only alternative I see is using a hierarchical file format via https://issues.jenkins-ci.org/browse/JENKINS-9639 (json, xml, yml, whatnot)

            I've asked a question over on that issue

            mr_dfuse Nico Mommaerts added a comment - I've asked a question over on that issue

            I think https://issues.jenkins-ci.org/browse/JENKINS-9639 is more interesting. Then we could move the username/password combo into a file as well.

            mindjiver Peter Jönsson added a comment - I think https://issues.jenkins-ci.org/browse/JENKINS-9639 is more interesting. Then we could move the username/password combo into a file as well.

            People

              mindjiver Peter Jönsson
              ztolley Zac Tolley
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: