-
Bug
-
Resolution: Fixed
-
Blocker
-
None
-
Ubuntu, Jenkins 1.656, VSphere plugin 2.53, Git plugin 2.5.1 or 2.5.2
The git plugin is unable to find revisions to build in environments where the current user is not Jenkins.
This problem was introduced in git 2.5.1, 2 releases, and was not present in the 2.5.0 release.
On builds where the build user is not Jenkins (the slave is running as a different user), the job aborts due to git errors.
e.g:
14:48:47 Started by user jmellor
14:48:47 Starting limited count build: 1
14:48:47 [EnvInject] - Loading node environment variables.
14:48:47 Building remotely on robot-testbuilder-1 (robot-testbuilder) in workspace /var/lib/jenkins/workspace/soc-dashboard_dev_nightly
14:48:50 Wiping out workspace first.
14:48:50 Cloning the remote Git repository
14:48:50 Cloning repository ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git
14:48:50 > /usr/bin/git init /var/lib/jenkins/workspace/soc-dashboard_dev_nightly # timeout=10
14:48:50 Fetching upstream changes from ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git
14:48:50 > /usr/bin/git --version # timeout=10
14:48:50 > /usr/bin/git -c core.askpass=true fetch --tags --progress ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git refs/heads/develop
14:49:13 > /usr/bin/git config remote.origin.url ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git # timeout=10
14:49:14 > /usr/bin/git config --add remote.origin.fetch refs/heads/develop # timeout=10
14:49:14 > /usr/bin/git config remote.origin.url ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git # timeout=10
14:49:14 Fetching upstream changes from ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git
14:49:14 > /usr/bin/git -c core.askpass=true fetch --tags --progress ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git refs/heads/develop
14:49:14 > /usr/bin/git rev-parse origin/develop^
14:49:14 > /usr/bin/git rev-parse develop^{commit}
# timeout=10
14:49:14 ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
14:49:14 Retrying after 10 seconds
14:49:24 Wiping out workspace first.
14:49:24 Cloning the remote Git repository
14:49:24 Cloning repository ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git
14:49:24 > /usr/bin/git init /var/lib/jenkins/workspace/soc-dashboard_dev_nightly # timeout=10
14:49:24 Fetching upstream changes from ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git
14:49:24 > /usr/bin/git --version # timeout=10
14:49:24 > /usr/bin/git -c core.askpass=true fetch --tags --progress ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git refs/heads/develop
14:49:46 > /usr/bin/git config remote.origin.url ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git # timeout=10
14:49:46 > /usr/bin/git config --add remote.origin.fetch refs/heads/develop # timeout=10
14:49:46 > /usr/bin/git config remote.origin.url ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git # timeout=10
14:49:46 Fetching upstream changes from ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git
14:49:46 > /usr/bin/git -c core.askpass=true fetch --tags --progress ssh://jmellor@gerrit.internal:29418/socdash/soc-dashboard.git refs/heads/develop
14:49:46 > /usr/bin/git rev-parse origin/develop^
14:49:46 > /usr/bin/git rev-parse develop^{commit}
# timeout=10
14:49:46 ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
My current workaround is to revert all the way back to git plugin 2.4.4 (which I had laying around), and the fault does not exhibit anymore. This build is also known to have been working for months with the git plugin 2.5.0 release.
- is duplicated by
-
JENKINS-36563 Git plugin does not fetch branch to merge to when merge before build is used
-
- Closed
-
-
JENKINS-21845 Command "git rev-parse /develop^{commit}" returned status code 128
-
- Closed
-
- is related to
-
JENKINS-31393 Git plugin fetches all branches before fetching the specified refspec
-
- Closed
-
-
JENKINS-33140 Git plugin doesn't use refspec on the first clone/fetch
-
- Closed
-
I'm not understanding enough of the use case yet (sorry about that). You said, "... only trigger this build when Gerrit sees a change on develop branch..." The refspec you provided (refs/heads/develop) should have only detected changes on the remote branch named "develop". Unfortunately, the refspec you've defined, "refs/heads/develop" seems to mean (with git 2.9.0 on Ubuntu) "fetch the blobs on the remote branch named 'develop', but don't create any local branches to track that remote branch".
Could you try a different experiment? This should fit your use case for both git plugin 2.4.4 and later. Instead of the refspec "ref/heads/develop", use the refspec "ref/heads/develop:refs/remotes/origin/develop". That should cause a remote tracking branch to be created named "origin/develop" which will then satisfy the request for rev-parse origin/develop.