-
Bug
-
Resolution: Fixed
-
Blocker
-
Ubuntu 12.04 (see attachment for system details)
If a recursive symlink is present in one's git repo the new git/git-client plugins will fail badly as shown below. While having such a symlink may not be ideal, until git 1.3.0/ git-client 1.0.4 Jenkins did not have problems with it (nor have I had any other git client or tool fail because of this symlink).
This appears to be specifically related to changes in the new git 1.3.0 plugin or its dependency git-client 1.0.4. Downgrading to the git 1.2.0 plugin and manually downgrading to the git-client 1.0.3 plugin was enough to remove this issue entirely. The problems seems specific to jgit.
Note that I'm using Jenkins 1.505 and all other plugins are up-to-date.
The details below contrast the working and broken builds (the only difference is the versions of the git plugins and their effects).
----------------------------------------------------------------------------
A normal build (when using git 1.2.0 and git-client 1.0.3):
----------------------------------------------------------------------------
Retriggered by user myself for Gerrit: http://gerritserver/710
Building on master in workspace /var/lib/jenkins/jobs/puppet/workspace
Checkout:workspace / /var/lib/jenkins/jobs/puppet/workspace - hudson.remoting.LocalChannel@1307e9af
Using strategy: Gerrit Trigger
Last Built Revision: Revision b3f2bd79784969bd18866ff666f0ab46136ff196 (mybranch)
Using shallow clone
Wiping out workspace first.
Cloning the remote Git repository
Cloning repository git://gitserver/puppet
git --version
git version 1.7.9.5
Fetching upstream changes from origin
Commencing build of Revision b3f2bd79784969bd18866ff666f0ab46136ff196 (mybranch)
Checking out Revision b3f2bd79784969bd18866ff666f0ab46136ff196 (mybranch)
[workspace] $ /bin/bash -ex /tmp/hudson3918244826320546803.sh
[--== ...and so on to a successful build ==--]
----------------------------------------------------------------------------
Build break (when using git 1.3.0 and git-client 1.0.4):
----------------------------------------------------------------------------
Retriggered by user myself for Gerrit: http://gerritserver/710
Building on master in workspace /var/lib/jenkins/jobs/puppet/workspace
Checkout:workspace / /var/lib/jenkins/jobs/puppet/workspace - hudson.remoting.LocalChannel@6f0bc962
Using strategy: Gerrit Trigger
Last Built Revision: Revision b3f2bd79784969bd18866ff666f0ab46136ff196 (mybranch)
Using shallow clone
Wiping out workspace first.
Cloning the remote Git repository
Cloning repository git://gitserver/puppet
git --version
git version 1.7.9.5
Commencing build of Revision b3f2bd79784969bd18866ff666f0ab46136ff196 (mybranch)
Checking out Revision b3f2bd79784969bd18866ff666f0ab46136ff196 (mybranch)
FATAL: Could not checkout b3f2bd79784969bd18866ff666f0ab46136ff196
hudson.plugins.git.GitException: Could not checkout b3f2bd79784969bd18866ff666f0ab46136ff196
at org.jenkinsci.plugins.gitclient.JGitAPIImpl.checkout(JGitAPIImpl.java:68)
at hudson.plugins.git.GitAPI.checkout(GitAPI.java:208)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1273)
at hudson.plugins.git.GitSCM.access$1100(GitSCM.java:57)
at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1232)
at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1208)
at hudson.FilePath.act(FilePath.java:865)
at hudson.FilePath.act(FilePath.java:838)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1208)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1353)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:683)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:588)
at hudson.model.Run.execute(Run.java:1567)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:237)
Caused by: org.eclipse.jgit.api.errors.CheckoutConflictException: Checkout conflict with files:
apt/spec/fixtures/modules/apt <------ [ this is a symlink to ../../.. ]
apt/spec/fixtures/modules/apt/.gitignore
apt/spec/fixtures/modules/apt/CHANGELOG
apt/spec/fixtures/modules/apt/manifests
apt/spec/fixtures/modules/apt/manifests/init.pp
apt/spec/fixtures/modules/apt/spec
apt/spec/fixtures/modules/apt/spec/fixtures
apt/spec/fixtures/modules/apt/spec/fixtures/manifests
apt/spec/fixtures/modules/apt/spec/fixtures/manifests/site.pp
apt/spec/fixtures/modules/apt/spec/fixtures/modules
apt/spec/fixtures/modules/apt/spec/fixtures/modules/apt <--------- [ and so on... ]
apt/spec/fixtures/modules/apt/spec/fixtures/modules/apt/.gitignore
apt/spec/fixtures/modules/apt/spec/fixtures/modules/apt/CHANGELOG
[--== trimmed ~9 MB of recursive output ==--]
apt/spec/fixtures/modules/apt/tests/source.pp
at org.eclipse.jgit.dircache.DirCacheCheckout.doCheckout(DirCacheCheckout.java:411)
at org.eclipse.jgit.dircache.DirCacheCheckout.checkout(DirCacheCheckout.java:391)
at org.eclipse.jgit.api.CheckoutCommand.call(CheckoutCommand.java:240)
... 17 more
[--== build failed ==--]
- duplicates
-
JENKINS-17198 Caused by: org.eclipse.jgit.api.errors.CheckoutConflictException: Checkout conflict with files
- Closed