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

AbstractGitSCMSource.retrieve fails due to nonexistent cache directory

XMLWordPrintable

      Not sure if this affects production systems, or indeed why it is not reported by everyone, but anyway I was unable to make AbstractGitSCMSource.retrieve(SCMHeadObserver, TaskListener) work in a test without this fix. (And there was no test for it.) Doing so failed with:

      hudson.plugins.git.GitException: Could not init $JENKINS_HOME/caches/git-4ab...
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:656)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.init(CliGitAPIImpl.java:181)
      	at hudson.plugins.git.GitAPI.init(GitAPI.java:217)
      	at jenkins.plugins.git.AbstractGitSCMSource.retrieve(AbstractGitSCMSource.java:275)
      	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:147)
      	at jenkins.scm.api.SCMSource.retrieve(SCMSource.java:231)
      	at jenkins.scm.api.SCMSource.fetch(SCMSource.java:176)
      	at jenkins.plugins.git.AbstractGitSCMSourceTest.retrieveHeads(AbstractGitSCMSourceTest.java:74)
      	at ...
      Caused by: hudson.plugins.git.GitException: Error performing command: git init $JENKINS_HOME/caches/git-4ab...
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1726)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1695)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1691)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1321)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:654)
      	... 34 more
      Caused by: java.io.IOException: Cannot run program "git" (in directory "$JENKINS_HOME/caches/git-4ab..."): error=2, No such file or directory
      	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
      	at hudson.Proc$LocalProc.<init>(Proc.java:244)
      	at hudson.Proc$LocalProc.<init>(Proc.java:216)
      	at hudson.Launcher$LocalLauncher.launch(Launcher.java:803)
      	at hudson.Launcher$ProcStarter.start(Launcher.java:381)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1715)
      	... 38 more
      Caused by: java.io.IOException: error=2, No such file or directory
      	at java.lang.UNIXProcess.forkAndExec(Native Method)
      	at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)
      	at java.lang.ProcessImpl.start(ProcessImpl.java:134)
      	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
      	... 43 more
      

      Perhaps some, but not all, versions of git-client barf if you try to run git init in a nonexistent directory?

            jglick Jesse Glick
            jglick Jesse Glick
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: