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

Unable to run Docker Agent via JNLP

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Not A Defect
    • Component/s: docker-plugin
    • Labels:
      None
    • Environment:
    • Similar Issues:

      Description

      When I try to run a build agent using JNLP, I am unable to do so as I receive an exception.

      Documentation followed
      Jenkins Wiki

      Replication frequency
      Every time.

      Steps to recreate

      1. Install Jenkins from image "jenkins/jenkins:lts" and perform basic set-up
      2. Ensure Docker plugin etc is installed.
      3. Configure Docker plugin.
      4. Add new Agent labeled "myAgent" via Docker template using image "jenkins/jnlp-slave:latest" and JNLP, set user to "jenkins".
      5. Create new Jenkins item using the following Pipeline script:
        pipeline {
            agent { label 'myAgent' }
            stages {
                stage("Hello") {
                    steps {
                        sleep 30
                        echo 'Hello World'
                    }
                }
            }
        }
      6. Run new item.
      7. Observe that the build on main page initially has the tooltip "Jenkins has no label 'myAgent'" which is incorrect as we just created that.
      8. Wait a few moments.
      9. Observe that item then stalls with tooltip "All nodes of label 'myAgent' are offline" and a black clock.
      10. Observe that after a time, many offline agents appear under "Build Executor Status".
      11. Click on any offline agent.
      12. Observe message "This agent is offline because Jenkins failed to launch the agent process on it. See log for more details".
      13. Click on log-link and observe that it never populates.
      14. Click on "Configure" in left-hand list.
      15. Observe the exception message below:
        org.apache.commons.jelly.JellyTagException: jar:file:/var/jenkins_home/war/WEB-INF/lib/jenkins-core-2.121.1.jar!/hudson/model/Computer/configure.jelly:43:71: <st:include> No page found 'configure-entries.jelly' for class io.jenkins.docker.DockerTransientNode
        	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:124)
        	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.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.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:97)
        	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$3.doDispatch(MetaClass.java:209)
        	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:860)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
        	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
        	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
        	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
        	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
        	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
        	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
        	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
        	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
        	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
        	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
        	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
        	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
        	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
        	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        	at org.eclipse.jetty.server.Server.handle(Server.java:530)
        	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
        	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
        	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
        	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
        	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
        	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
        	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
        	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
        	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)
        	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
        	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        	at java.lang.Thread.run(Thread.java:748)
        Caused: javax.servlet.ServletException
        	at org.kohsuke.stapler.jelly.JellyFacet$1.dispatch(JellyFacet.java:105)
        	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$3.doDispatch(MetaClass.java:209)
        	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:860)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
        	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
        	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:105)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
        	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
        	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
        	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
        	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
        	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
        	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
        	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
        	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
        	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
        	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
        	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
        	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
        	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
        	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
        	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
        	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
        	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        	at org.eclipse.jetty.server.Server.handle(Server.java:530)
        	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
        	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
        	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
        	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
        	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
        	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
        	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
        	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
        	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)
        	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
        	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        	at java.lang.Thread.run(Thread.java:748)

        Attachments

          Activity

          Hide
          bigj J I added a comment - - edited

          Appears to be similar to JENKINS-28639.

          If the "Connect method" is changed to "Attach Docker container" then things seem to work with no other changes.

          Show
          bigj J I added a comment - - edited Appears to be similar to JENKINS-28639 . If the "Connect method" is changed to "Attach Docker container" then things seem to work with no other changes.
          Hide
          ndeloof Nicolas De Loof added a comment -

          your JNLP container fails to connect to master and register itself. Check running containers and their status, as well as container logs

          Show
          ndeloof Nicolas De Loof added a comment - your JNLP container fails to connect to master and register itself. Check running containers and their status, as well as container logs
          Hide
          bigj J I added a comment -

          You're right. Looking in the container log I can see this:

          Jun 19, 2018 1:21:36 PM hudson.remoting.jnlp.Main$CuiListener error
          SEVERE: Failed to connect to serverName:50000
          java.io.IOException: Failed to connect to serverName:50000
          	at org.jenkinsci.remoting.engine.JnlpAgentEndpoint.open(JnlpAgentEndpoint.java:242)
          	at hudson.remoting.Engine.connect(Engine.java:686)
          	at hudson.remoting.Engine.innerRun(Engine.java:547)
          	at hudson.remoting.Engine.run(Engine.java:469)
          Caused by: java.net.ConnectException: Connection refused
          	at sun.nio.ch.Net.connect0(Native Method)
          	at sun.nio.ch.Net.connect(Net.java:454)
          	at sun.nio.ch.Net.connect(Net.java:446)
          	at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:648)
          	at java.nio.channels.SocketChannel.open(SocketChannel.java:189)
          	at org.jenkinsci.remoting.engine.JnlpAgentEndpoint.open(JnlpAgentEndpoint.java:203)
          	... 3 more

          "serverName" is correct, but nothing is configured to listen on port 50000; I'll have to figure out where that value is coming from.

          Show
          bigj J I added a comment - You're right. Looking in the container log I can see this: Jun 19, 2018 1:21:36 PM hudson.remoting.jnlp.Main$CuiListener error SEVERE: Failed to connect to serverName:50000 java.io.IOException: Failed to connect to serverName:50000 at org.jenkinsci.remoting.engine.JnlpAgentEndpoint.open(JnlpAgentEndpoint.java:242) at hudson.remoting.Engine.connect(Engine.java:686) at hudson.remoting.Engine.innerRun(Engine.java:547) at hudson.remoting.Engine.run(Engine.java:469) Caused by: java.net.ConnectException: Connection refused at sun.nio.ch.Net.connect0(Native Method) at sun.nio.ch.Net.connect(Net.java:454) at sun.nio.ch.Net.connect(Net.java:446) at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:648) at java.nio.channels.SocketChannel.open(SocketChannel.java:189) at org.jenkinsci.remoting.engine.JnlpAgentEndpoint.open(JnlpAgentEndpoint.java:203) ... 3 more "serverName" is correct, but nothing is configured to listen on port 50000; I'll have to figure out where that value is coming from.
          Hide
          bigj J I added a comment - - edited

          OK, I found the configuration problems.

          1. I had not provided a custom Jenkins URL, resolved that so it would pick-up the exposed JNLP port.
          2. The port had a missing "0" in the mapping definition, resolved that.

          Thanks, I now get a meaningful error message and unfortunately it points me at JENKINS-28499

          Jun 19, 2018 1:32:41 PM hudson.remoting.jnlp.Main$CuiListener error
          SEVERE: http://serverName:15000/tcpSlaveAgentListener/ is invalid: 404 Not Found
          java.io.IOException: http://serverName:15000/tcpSlaveAgentListener/ is invalid: 404 Not Found
          	at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:197)
          	at hudson.remoting.Engine.innerRun(Engine.java:518)
          	at hudson.remoting.Engine.run(Engine.java:469)

          I am going to triple-check that I haven't missed something.

          I guess this can be closed, but it's really not obvious what the actual problem is.
          Maybe if the logs had loaded from step 12?

          Show
          bigj J I added a comment - - edited OK, I found the configuration problems. I had not provided a custom Jenkins URL, resolved that so it would pick-up the exposed JNLP port. The port had a missing "0" in the mapping definition, resolved that. Thanks, I now get a meaningful error message and unfortunately it points me at JENKINS-28499 Jun 19, 2018 1:32:41 PM hudson.remoting.jnlp.Main$CuiListener error SEVERE: http: //serverName:15000/tcpSlaveAgentListener/ is invalid: 404 Not Found java.io.IOException: http: //serverName:15000/tcpSlaveAgentListener/ is invalid: 404 Not Found at org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver.resolve(JnlpAgentEndpointResolver.java:197) at hudson.remoting.Engine.innerRun(Engine.java:518) at hudson.remoting.Engine.run(Engine.java:469) I am going to triple-check that I haven't missed something. I guess this can be closed, but it's really not obvious what the actual problem is. Maybe if the logs had loaded from step 12?
          Hide
          bigj J I added a comment -

          Thanks again, whilst things are still not working ("java.util.concurrent.ExecutionException: org.jenkinsci.remoting.protocol.impl.ConnectionRefusalException: Connection closed before acknowledgement sent") it is clearly an issue on my side and not a Jenkins problem.

          It's also just occurred to me that the exception "No page found 'configure-entries.jelly' for class io.jenkins.docker.DockerTransientNode" is probably preventing Jenkins from explaining to me what the original problem was (bad config, misaligned ports etc).

          That isn't an issue with the "docker-plugin" component, but the error reporting mechanism I guess.
          Should I log a fresh bug against that and close this one?

          Show
          bigj J I added a comment - Thanks again, whilst things are still not working (" java.util.concurrent.ExecutionException: org.jenkinsci.remoting.protocol.impl.ConnectionRefusalException: Connection closed before acknowledgement sent ") it is clearly an issue on my side and not a Jenkins problem. It's also just occurred to me that the exception " No page found 'configure-entries.jelly' for class io.jenkins.docker.DockerTransientNode " is probably preventing Jenkins from explaining to me what the original problem was (bad config, misaligned ports etc). That isn't an issue with the "docker-plugin" component, but the error reporting mechanism I guess. Should I log a fresh bug against that and close this one?
          Hide
          ndeloof Nicolas De Loof added a comment -

          Missing a configure-entries.jelly isn't the root cause for your issue, the fact there's none is due to nothing configurable in a Docker transient node (should provide an empty one)

          Failure to establish JNLP connection can have multiple causes, mostly related to connectivity from slave to master (public URL, tunnel, etc. Better for you to ask for assistance on jenkins-users mailing list vs opening issues.

          Show
          ndeloof Nicolas De Loof added a comment - Missing a configure-entries.jelly isn't the root cause for your issue, the fact there's none is due to nothing configurable in a Docker transient node (should provide an empty one) Failure to establish JNLP connection can have multiple causes, mostly related to connectivity from slave to master (public URL, tunnel, etc. Better for you to ask for assistance on jenkins-users mailing list vs opening issues.
          Hide
          bigj J I added a comment -

          I meant - there is a fault within Jenkins (the "No page found 'configure-entries.jelly'" which is a separate issue to my docker/network misconfiguration).

          I will keep digging into what I have wrong.

          Show
          bigj J I added a comment - I meant - there is a fault within Jenkins (the "No page found 'configure-entries.jelly'" which is a separate issue to my docker/network misconfiguration). I will keep digging into what I have wrong.

            People

            • Assignee:
              ndeloof Nicolas De Loof
              Reporter:
              bigj J I
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: