Uploaded image for project: 'Jenkins Artifactory Plug-in'
  1. Jenkins Artifactory Plug-in
  2. HAP-988

The rtDocker.push Pipeline method can fail, if some of the agents become offline

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: 2.12.2
    • Fix Version/s: 2.13.0
    • Component/s: None
    • Labels:
      None

      Description

      The rtDocker.push Pipeline method can fail with the below exception, in case one of the Jenkins nodes become unavailable or shuts down.
      Here's why this can happen:
      When the docker push command is executed, the Jenkins Artifactory Plugin attempts to register the pushed image on all the available Jenkins nodes. It does that, so that one of the Build-Info Proxies (which can run on all agents) can intercept the docker image and generate a build-info for it.
      It appears that if a specific agent becomes offline during this operation, the build can fail with the following exception:

      java.io.EOFException
      at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2624)
      at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3099)
      at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:853)
      at java.io.ObjectInputStream.<init>(ObjectInputStream.java:349)
      at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:48)
      at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:35)
      at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:59)
      Caused: java.io.IOException: Unexpected termination of the channel
      at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:73)
      Caused: hudson.remoting.RequestAbortedException
      at hudson.remoting.Request.abort(Request.java:307)
      at hudson.remoting.Channel.terminate(Channel.java:905)
      at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:92)
      at ......remote call to XX.XX.XXX.XXX (F-Cloud1)(Native Method)
      at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1554)
      at hudson.remoting.Request.call(Request.java:172)
      at hudson.remoting.Channel.call(Channel.java:838)
      at org.jfrog.hudson.pipeline.docker.utils.DockerAgentUtils.registerImageOnAgents(DockerAgentUtils.java:60)
      at org.jfrog.hudson.pipeline.steps.DockerPushStep$Execution.run(DockerPushStep.java:97)
      at org.jfrog.hudson.pipeline.steps.DockerPushStep$Execution.run(DockerPushStep.java:62)
      at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
      at hudson.security.ACL.impersonate(ACL.java:260)
      at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      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)
      Finished: FAILURE

        Attachments

          Activity

            People

            • Assignee:
              eyalb Eyal Ben Moshe
              Reporter:
              eyalb Eyal Ben Moshe
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: