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

multiple git repositories sometimes fail to checkout some of them into subdirectory

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Major Major
    • None
    • Jenkins 1.643 Linux
      Multiple SCMs Plugin 0.5
      Git Plugin 2.5.0-beta3

      I have yet to have a reliable production, and I am not sure if the bug is in Multiple SCM or within the Git plugin.

      I have 3 repositories, one checked out at the tip of workspace, and two checked out into subdirectories src/A and src/B.

      Sometimes the src/A or src/B fail to be checked out, despite the log looking perfectly normal, and saying it cloned and checked them out.

      Sometimes re-running the job simply fixes the issue.

      A sample of the log that Isee when this issue occurs:

      Started by upstream project "ixgbe/gerrit_compat" build number 17
      originally caused by:
      Manually triggered by user jekeller for Gerrit: https://git-amr-1.devtools.intel.com/gerrit/74271
      Building remotely on rhel5sp11-60c709d8 (rhel5sp11 swarm linux rhel5) in workspace /home/jenkins/workspace/ixgbe/gerrit_compat/build/PROJECT/label/rhel5
      Cloning the remote Git repository
      Cloning repository ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-compat
      > git init /home/jenkins/workspace/ixgbe/gerrit_compat/build/PROJECT/label/rhel5/src/COMPAT # timeout=10
      Fetching upstream changes from ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-compat
      > git --version # timeout=10
      using GIT_SSH to set credentials ND Linux CI Server
      > git fetch --tags --progress ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-compat +refs/heads/:refs/remotes/origin/
      > git config remote.origin.url ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-compat # timeout=10
      > git config --add remote.origin.fetch +refs/heads/:refs/remotes/origin/ # timeout=10
      > git config remote.origin.url ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-compat # timeout=10
      Fetching upstream changes from ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-compat
      using GIT_SSH to set credentials ND Linux CI Server
      > git fetch --tags --progress ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-compat refs/changes/71/74271/1
      Checking out Revision 73f1f63fb1f4c5da8030d46b3cdf762cefc28e10 (master)
      > git config core.sparsecheckout # timeout=10
      > git checkout -f 73f1f63fb1f4c5da8030d46b3cdf762cefc28e10
      First time build. Skipping changelog.
      Cloning the remote Git repository
      Cloning repository ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_shared-ixgbe
      > git init /home/jenkins/workspace/ixgbe/gerrit_compat/build/PROJECT/label/rhel5/src/SHARED # timeout=10
      Fetching upstream changes from ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_shared-ixgbe
      > git --version # timeout=10
      using GIT_SSH to set credentials ND Linux CI Server
      > git fetch --tags --progress ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_shared-ixgbe +refs/heads/:refs/remotes/origin/
      > git config remote.origin.url ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_shared-ixgbe # timeout=10
      > git config --add remote.origin.fetch +refs/heads/:refs/remotes/origin/ # timeout=10
      > git config remote.origin.url ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_shared-ixgbe # timeout=10
      Fetching upstream changes from ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_shared-ixgbe
      using GIT_SSH to set credentials ND Linux CI Server
      > git fetch --tags --progress ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_shared-ixgbe +refs/heads/:refs/remotes/origin/
      Checking out Revision c0443ba24e527146ce7e8a331047aff366aaa578 (refs/remotes/origin/master)
      > git config core.sparsecheckout # timeout=10
      > git checkout -f c0443ba24e527146ce7e8a331047aff366aaa578
      First time build. Skipping changelog.
      Cloning the remote Git repository
      Cloning repository ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-ixgbe
      > git init /home/jenkins/workspace/ixgbe/gerrit_compat/build/PROJECT/label/rhel5 # timeout=10
      Fetching upstream changes from ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-ixgbe
      > git --version # timeout=10
      using GIT_SSH to set credentials ND Linux CI Server
      > git fetch --tags --progress ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-ixgbe +refs/heads/:refs/remotes/origin/
      > git config remote.origin.url ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-ixgbe # timeout=10
      > git config --add remote.origin.fetch +refs/heads/:refs/remotes/origin/ # timeout=10
      > git config remote.origin.url ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-ixgbe # timeout=10
      Fetching upstream changes from ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-ixgbe
      using GIT_SSH to set credentials ND Linux CI Server
      > git fetch --tags --progress ssh://jbrandeb-host.jf.intel.com/home/jenkins/mirrors/nd_linux-ixgbe +refs/heads/:refs/remotes/origin/
      Checking out Revision 08bb35e104c5b440e20933cec05f1ed91abcd6b0 (refs/remotes/origin/master)
      > git config core.sparsecheckout # timeout=10
      > git checkout -f 08bb35e104c5b440e20933cec05f1ed91abcd6b0
      First time build. Skipping changelog.
      [rhel5] $ /bin/bash -el /tmp/hudson1549523813705894193.sh
      + set -o pipefail
      ++ echo ixgbe/gerrit_compat/build=PROJECT,label=rhel5
      ++ sed s/label=//
      ++ sed s/BUILD_TYPE=//
      ++ tr /, -
      + project=ixgbe-gerrit_compat-build=PROJECT-rhel5
      ++ echo ixgbe-gerrit_compat-build=PROJECT-rhel5-17
      ++ tr '[:upper:]' '[:lower:]'
      + name=ixgbe-gerrit_compat-build=project-rhel5-17
      + logfile=ixgbe-gerrit_compat-build=project-rhel5-17.log
      + [[ PROJECT = ESX* ]]
      + which sparse
      which: no sparse in (/usr/kerberos/bin:/sbin:/usr/sbin:/bin:/usr/bin:/home/jenkins/bin)
      + C=0
      + CFLAGS='-Wno-missing-field-initializers -Wno-aggregate-return'
      + CHECKIDS_FLAGS=
      + W=1
      + make -C src -f build.mk TEST_BUILD=YES USE_ISYSTEM=YES CHECKIDS_FLAGS= BUILD=PROJECT
      + tee ixgbe-gerrit_compat-build=project-rhel5-17.log
      make: Entering directory `/home/jenkins/workspace/ixgbe/gerrit_compat/build/PROJECT/label/rhel5/src'
      build.mk:61: *** Cannot find COMPAT/compat.inc for kcompat flags. Stop.
      make: Leaving directory `/home/jenkins/workspace/ixgbe/gerrit_compat/build/PROJECT/label/rhel5/src'
      Build step 'Execute shell' marked build as failure
      [WARNINGS] Skipping publisher since build result is FAILURE
      Archiving artifacts
      Finished: FAILURE

      As you can see, 3 repositories are "checked out" according to the docs, but the workspace for this job appears to only include the nd_linux-i40e project, and not the nd_shared-i40e or nd_linux-compat projects.

      This results in a compilation failure due to inability to locate the COMPAT files.

      What are the next steps I should take to help debug this issue?

            rodrigc Craig Rodrigues
            jekeller Jacob Keller
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: