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

AbstractGitSCMSource.retrieve fails due to nonexistent cache directory




      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?


        Issue Links


            jglick Jesse Glick created issue -
            jglick Jesse Glick made changes -
            Field Original Value New Value
            Remote Link This issue links to "PR 432 (Web Link)" [ 14735 ]
            jglick Jesse Glick made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            jglick Jesse Glick made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            jglick Jesse Glick made changes -
            Resolution Fixed [ 1 ]
            Status In Review [ 10005 ] Resolved [ 5 ]
            markewaite Mark Waite made changes -
            Status Resolved [ 5 ] Closed [ 6 ]


              jglick Jesse Glick
              jglick Jesse Glick
              0 Vote for this issue
              3 Start watching this issue