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

pipeline + docker + dir() causes: process apparently never started in ...

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • None
    • OS Jenkins Master/Slave: Ubuntu x64 16.04
      Jenkins server version: 2.235.2
      durable task plugin version: 1.34
      all other plugins: latest version (for 2020-07-29)

      So there's this weird behavior when using the built-in dir() method with a pipeline, running on a docker container and it causes anything in the dir block to hang. Please note the example below, as it explains it better than I can describe it:

       

      pipeline {
          agent {
              docker {
                  label '********'
                  image '**********'
                  registryUrl '************'
                  registryCredentialsId '*******'
                  args '--user root:root'
              }
          }
          stages {
              stage('dir-testing') {
                  stages {
                      stage('without dir') {
                          steps {
                              sh 'cd /opt && ls -l'
                          }
                      }
                      stage('with dir') {
                          steps {
                              dir('/opt') {
                                  sh 'ls -l'
                              }
                          }
                      }
                  }
                  post {
                      always {
                          cleanWs()
                      }
                  }
              }
          }
      }
      

      And the result is:

      Started by user **********
      Running in Durability level: MAX_SURVIVABILITY
      [Pipeline] Start of Pipeline
      [Pipeline] node
      Running on ************ in /var/jenkins/workspace/test-cwd-bug
      [Pipeline] {
      [Pipeline] withEnv
      [Pipeline] {
      [Pipeline] withDockerRegistry
      Using the existing docker config file.Removing blacklisted property: auths$ docker login -u ******** -p ******** *********
      WARNING! Using --password via the CLI is insecure. Use --password-stdin.
      Login Succeeded
      [Pipeline] {
      [Pipeline] isUnix
      [Pipeline] sh
      + docker inspect -f . **********
      
      Error: No such object: ***********
      [Pipeline] isUnix
      [Pipeline] sh
      + docker inspect -f . ****************
      .
      [Pipeline] withDockerContainer
      ************* does not seem to be running inside a container
      $ docker run -t -d -u 0:0 --user root:root -w /var/jenkins/workspace/test-cwd-bug -v /var/jenkins/workspace/test-cwd-bug:/var/jenkins/workspace/test-cwd-bug:rw,z -v /var/jenkins/workspace/test-cwd-bug@tmp:/var/jenkins/workspace/test-cwd-bug@tmp:rw,z -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** ********************* cat
      $ docker top 969a08a99a24c314d5d80f2cbf77920db4e269524d1af6738c0ddc5417da3f16 -eo pid,comm
      [Pipeline] {
      [Pipeline] stage
      [Pipeline] { (dir-testing)
      [Pipeline] stage
      [Pipeline] { (without dir)
      [Pipeline] sh
      + cd /opt
      + ls -l
      total 8
      drwxr-xr-x 4 root root 4096 Jul 24 15:29 artifactory-scripts
      drwxr-xr-x 1  608  500 4096 Jul 24 15:39 cv25_linux_sdk_2.5
      [Pipeline] }
      [Pipeline] // stage
      [Pipeline] stage
      [Pipeline] { (with dir)
      [Pipeline] dir
      Running in /opt
      [Pipeline] {
      [Pipeline] sh
      process apparently never started in /opt@tmp/durable-5a20a76a
      (running Jenkins temporarily with -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS=true might make the problem clearer)
      [Pipeline] }
      [Pipeline] // dir
      [Pipeline] }
      [Pipeline] // stage
      Post stage
      [Pipeline] cleanWs
      [WS-CLEANUP] Deleting project workspace...
      [WS-CLEANUP] Deferred wipeout is used...
      [WS-CLEANUP] done
      [Pipeline] }
      [Pipeline] // stage
      [Pipeline] }
      $ docker stop --time=1 969a08a99a24c314d5d80f2cbf77920db4e269524d1af6738c0ddc5417da3f16
      $ docker rm -f 969a08a99a24c314d5d80f2cbf77920db4e269524d1af6738c0ddc5417da3f16
      [Pipeline] // withDockerContainer
      [Pipeline] }
      [Pipeline] // withDockerRegistry
      [Pipeline] }
      [Pipeline] // withEnv
      [Pipeline] }
      [Pipeline] // node
      [Pipeline] End of Pipeline
      ERROR: script returned exit code -2
      Finished: FAILURE
      

       

          [JENKINS-63253] pipeline + docker + dir() causes: process apparently never started in ...

          Bogomil Vasilev created issue -
          Bogomil Vasilev made changes -
          Description Original: So there's this weird behavior when using the built-in dir() method in a docker container and it causes anything in the dir block to hang. Please note the example below, as it explains it better than I can describe it:

           
          {code:java}
          pipeline {
              agent {
                  docker {
                      label '********'
                      image '**********'
                      registryUrl '************'
                      registryCredentialsId '*******'
                      args '--user root:root'
                  }
              }
              stages {
                  stage('dir-testing') {
                      stages {
                          stage('without dir') {
                              steps {
                                  sh 'cd /opt && ls -l'
                              }
                          }
                          stage('with dir') {
                              steps {
                                  dir('/opt') {
                                      sh 'ls -l'
                                  }
                              }
                          }
                      }
                      post {
                          always {
                              cleanWs()
                          }
                      }
                  }
              }
          }
          {code}
          And the result is:
          {code:java}
          Started by user **********
          Running in Durability level: MAX_SURVIVABILITY
          [Pipeline] Start of Pipeline
          [Pipeline] node
          Running on ************ in /var/jenkins/workspace/test-cwd-bug
          [Pipeline] {
          [Pipeline] withEnv
          [Pipeline] {
          [Pipeline] withDockerRegistry
          Using the existing docker config file.Removing blacklisted property: auths$ docker login -u ******** -p ******** *********
          WARNING! Using --password via the CLI is insecure. Use --password-stdin.
          Login Succeeded
          [Pipeline] {
          [Pipeline] isUnix
          [Pipeline] sh
          + docker inspect -f . **********

          Error: No such object: ***********
          [Pipeline] isUnix
          [Pipeline] sh
          + docker inspect -f . ****************
          .
          [Pipeline] withDockerContainer
          ************* does not seem to be running inside a container
          $ docker run -t -d -u 0:0 --user root:root -w /var/jenkins/workspace/test-cwd-bug -v /var/jenkins/workspace/test-cwd-bug:/var/jenkins/workspace/test-cwd-bug:rw,z -v /var/jenkins/workspace/test-cwd-bug@tmp:/var/jenkins/workspace/test-cwd-bug@tmp:rw,z -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** ********************* cat
          $ docker top 969a08a99a24c314d5d80f2cbf77920db4e269524d1af6738c0ddc5417da3f16 -eo pid,comm
          [Pipeline] {
          [Pipeline] stage
          [Pipeline] { (dir-testing)
          [Pipeline] stage
          [Pipeline] { (without dir)
          [Pipeline] sh
          + cd /opt
          + ls -l
          total 8
          drwxr-xr-x 4 root root 4096 Jul 24 15:29 artifactory-scripts
          drwxr-xr-x 1 608 500 4096 Jul 24 15:39 cv25_linux_sdk_2.5
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (with dir)
          [Pipeline] dir
          Running in /opt
          [Pipeline] {
          [Pipeline] sh
          process apparently never started in /opt@tmp/durable-5a20a76a
          (running Jenkins temporarily with -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS=true might make the problem clearer)
          [Pipeline] }
          [Pipeline] // dir
          [Pipeline] }
          [Pipeline] // stage
          Post stage
          [Pipeline] cleanWs
          [WS-CLEANUP] Deleting project workspace...
          [WS-CLEANUP] Deferred wipeout is used...
          [WS-CLEANUP] done
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] }
          $ docker stop --time=1 969a08a99a24c314d5d80f2cbf77920db4e269524d1af6738c0ddc5417da3f16
          $ docker rm -f 969a08a99a24c314d5d80f2cbf77920db4e269524d1af6738c0ddc5417da3f16
          [Pipeline] // withDockerContainer
          [Pipeline] }
          [Pipeline] // withDockerRegistry
          [Pipeline] }
          [Pipeline] // withEnv
          [Pipeline] }
          [Pipeline] // node
          [Pipeline] End of Pipeline
          ERROR: script returned exit code -2
          Finished: FAILURE
          {code}
           
          New: So there's this weird behavior when using the built-in dir() method with a pipeline, running on a docker container and it causes anything in the dir block to hang. Please note the example below, as it explains it better than I can describe it:

           
          {code:java}
          pipeline {
              agent {
                  docker {
                      label '********'
                      image '**********'
                      registryUrl '************'
                      registryCredentialsId '*******'
                      args '--user root:root'
                  }
              }
              stages {
                  stage('dir-testing') {
                      stages {
                          stage('without dir') {
                              steps {
                                  sh 'cd /opt && ls -l'
                              }
                          }
                          stage('with dir') {
                              steps {
                                  dir('/opt') {
                                      sh 'ls -l'
                                  }
                              }
                          }
                      }
                      post {
                          always {
                              cleanWs()
                          }
                      }
                  }
              }
          }
          {code}
          And the result is:
          {code:java}
          Started by user **********
          Running in Durability level: MAX_SURVIVABILITY
          [Pipeline] Start of Pipeline
          [Pipeline] node
          Running on ************ in /var/jenkins/workspace/test-cwd-bug
          [Pipeline] {
          [Pipeline] withEnv
          [Pipeline] {
          [Pipeline] withDockerRegistry
          Using the existing docker config file.Removing blacklisted property: auths$ docker login -u ******** -p ******** *********
          WARNING! Using --password via the CLI is insecure. Use --password-stdin.
          Login Succeeded
          [Pipeline] {
          [Pipeline] isUnix
          [Pipeline] sh
          + docker inspect -f . **********

          Error: No such object: ***********
          [Pipeline] isUnix
          [Pipeline] sh
          + docker inspect -f . ****************
          .
          [Pipeline] withDockerContainer
          ************* does not seem to be running inside a container
          $ docker run -t -d -u 0:0 --user root:root -w /var/jenkins/workspace/test-cwd-bug -v /var/jenkins/workspace/test-cwd-bug:/var/jenkins/workspace/test-cwd-bug:rw,z -v /var/jenkins/workspace/test-cwd-bug@tmp:/var/jenkins/workspace/test-cwd-bug@tmp:rw,z -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** ********************* cat
          $ docker top 969a08a99a24c314d5d80f2cbf77920db4e269524d1af6738c0ddc5417da3f16 -eo pid,comm
          [Pipeline] {
          [Pipeline] stage
          [Pipeline] { (dir-testing)
          [Pipeline] stage
          [Pipeline] { (without dir)
          [Pipeline] sh
          + cd /opt
          + ls -l
          total 8
          drwxr-xr-x 4 root root 4096 Jul 24 15:29 artifactory-scripts
          drwxr-xr-x 1 608 500 4096 Jul 24 15:39 cv25_linux_sdk_2.5
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (with dir)
          [Pipeline] dir
          Running in /opt
          [Pipeline] {
          [Pipeline] sh
          process apparently never started in /opt@tmp/durable-5a20a76a
          (running Jenkins temporarily with -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS=true might make the problem clearer)
          [Pipeline] }
          [Pipeline] // dir
          [Pipeline] }
          [Pipeline] // stage
          Post stage
          [Pipeline] cleanWs
          [WS-CLEANUP] Deleting project workspace...
          [WS-CLEANUP] Deferred wipeout is used...
          [WS-CLEANUP] done
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] }
          $ docker stop --time=1 969a08a99a24c314d5d80f2cbf77920db4e269524d1af6738c0ddc5417da3f16
          $ docker rm -f 969a08a99a24c314d5d80f2cbf77920db4e269524d1af6738c0ddc5417da3f16
          [Pipeline] // withDockerContainer
          [Pipeline] }
          [Pipeline] // withDockerRegistry
          [Pipeline] }
          [Pipeline] // withEnv
          [Pipeline] }
          [Pipeline] // node
          [Pipeline] End of Pipeline
          ERROR: script returned exit code -2
          Finished: FAILURE
          {code}
           
          Carroll Chiou made changes -
          Assignee New: Carroll Chiou [ carroll ]
          Carroll Chiou made changes -
          Assignee Original: Carroll Chiou [ carroll ]
          Carroll Chiou made changes -
          Component/s New: docker-workflow-plugin [ 20625 ]
          wei948884609 made changes -
          Assignee New: wei948884609 [ wei948884609 ]

            wei948884609 wei948884609
            smirky Bogomil Vasilev
            Votes:
            7 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated: