Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Won't Fix
-
None
-
Jenkins 1.643 Linux
Multiple SCMs Plugin 0.5
Git Plugin 2.5.0-beta3
Description
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?
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Assignee | Mark Waite [ markewaite ] |
Assignee | Jacob Keller [ jekeller ] |
Assignee | Jacob Keller [ jekeller ] |
Assignee | Craig Rodrigues [ rodrigc ] |
Workflow | JNJira [ 168115 ] | JNJira + In-Review [ 182974 ] |
Resolution | Won't Fix [ 2 ] | |
Status | Open [ 1 ] | Resolved [ 5 ] |
Status | Resolved [ 5 ] | Closed [ 6 ] |
This issue can occur if somehow the contents of the submodule directory get deleted such as due to a retry, and it will not be recovered by a submodule update unless the submodule changes locations and is configured to perform a checkout. One solution to this would be to perform a hard reset after the checkout completes. I don't believe this is currently done for submodules even if the clean option is used.
It seems that the primary cause of this is due to somehow deleting the contents of the submodule when we perform an update. I am not sure how best to handle this yet. Somehow we end up deleting all the files, and then a future update does not correctly reset the working tree.