• Icon: Bug Bug
    • Resolution: Not A Defect
    • Icon: Major Major
    • docker-plugin
    • None

      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)

          [JENKINS-52033] Unable to run Docker Agent via JNLP

          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.

          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.

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

          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

          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.

          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.

          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?

          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?

          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?

          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?

          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.

          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.

          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.

          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.

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

              Created:
              Updated:
              Resolved: