Could you have configured your Jenkins server to expect Git in a certain path (where it is on the master), and then have placed it on a different path on the slave? Could you have configured your Jenkins server to automatically install Git as a tool but then have instead installed it yourself on the Windows slave? I'm not familiar with the source code of the git plugin, but a casual browsing seems to indicate that there is a loop which iterates over Git installations trying to find a git executable. In your case, it seems that loop is not finding the git executable, even though the executable is in the path. None of those ideas seem very likely to me, but maybe they'll inspire you (or someone else) further towards an answer.
Mark Waite >________________________________ > From: Ryan McKinley <ryan...@gmail.com> >To: jenkinsci-users@googlegroups.com >Sent: Tuesday, January 15, 2013 2:54 PM >Subject: Re: Git errors on jenkins slave (windows) > > >Thanks. I added a new job that runs on the same slave, the output makes me >think the environment is OK, but I still get the same error. > > >(Note, Git is installed at C:\Git -- i tried the standard Program Files also, >but got the same effect and was worried it may be a space in the name issue) > > >Here is the output; > > >[EnvInject] - Loading node environment variables. Building remotely on build_101 in workspace C:\jenkins\workspace\Environment Debug [Environment Debug] $ cmd /c call C:\Users\John\AppData\Local\Temp\hudson6323094003129014815.bat C:\jenkins\workspace\Environment Debug>echo hello hello C:\jenkins\workspace\Environment Debug>git --version git version 1.8.0.msysgit.0 C:\jenkins\workspace\Environment Debug>set AGSDESKTOPJAVA=C:\Program Files\ArcGIS\Desktop10.1\ ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\John\AppData\Roaming BUILD_CAUSE=USERIDCAUSE BUILD_CAUSE_USERIDCAUSE=true BUILD_ID=2013-01-15_13-46-55 BUILD_NUMBER=3 BUILD_TAG=jenkins-Environment Debug-3 BUILD_URL=http://192.168.1.6:8080/job/Environment%20Debug/3/ CommonProgramFiles=C:\Program Files\Common Files COMPUTERNAME=WIN7-V101-DEV ComSpec=C:\Windows\system32\cmd.exe EXECUTOR_NUMBER=0 FP_NO_HOST_CHECK=NO GIT_HOME=C:\Git\bin HOMEDRIVE=C: HOMEPATH=\Users\John HUDSON_COOKIE=e0133cc9-9893-4a6e-9c99-8900382f963e HUDSON_HOME=C:\jenkins HUDSON_SERVER_COOKIE=f150f0f33be57042 HUDSON_URL=http://192.168.1.6:8080/ J2D_D3D=false JAVA_HOME=C:\java\jdk1.7.0_07 JENKINS_HOME=C:\jenkins JENKINS_SERVER_COOKIE=f150f0f33be57042 JENKINS_URL=http://192.168.1.6:8080/ JOB_NAME=Environment Debug JOB_URL=http://192.168.1.6:8080/job/Environment%20Debug/ LOCALAPPDATA=C:\Users\John\AppData\Local LOGONSERVER=\\WIN7-V101-DEV NODE_LABELS=Voyager.NET101 build_101 NODE_NAME=build_101 NUMBER_OF_PROCESSORS=1 OS=Windows_NT Path=C:\java\jdk1.7.0_07/bin;C:\Program Files\CollabNet\Subversion Client;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\TortoiseSVN\bin;C:\Git\bin;"C:\Program Files\Java\jre6\bin" PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 6 Model 58 Stepping 9, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=3a09 ProgramData=C:\ProgramData ProgramFiles=C:\Program Files PROMPT=$P$G PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ PUBLIC=C:\Users\Public SESSIONNAME=Console SystemDrive=C: SystemRoot=C:\Windows TEMP=C:\Users\John\AppData\Local\Temp TMP=C:\Users\John\AppData\Local\Temp USERDOMAIN=WIN7-V101-DEV USERNAME=John USERPROFILE=C:\Users\John VS100COMNTOOLS=C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\ windir=C:\Windows WORKSPACE=C:\jenkins\workspace\Environment Debug C:\jenkins\workspace\Environment Debug>exit 0 Finished: SUCCESS > > > > > > > >On Tue, Jan 15, 2013 at 1:06 PM, Mark Waite <markwa...@yahoo.com> wrote: > >I think your assessment is correct. The Jenkins slave on that computer cannot >find the git executable. The "error performing command --version" would have >been "git --version" if the git executable had been found. >> >> >>One way to diagnose that condition is to create a Jenkins job which executes >>on that slave and has a single build step which executes "set". That will >>report the environment variables so that you can confirm the path to the Git >>executable is not in the PATH when the Jenkins slave agent starts. >> >> >>Mark Waite >> >> >> >>>________________________________ >>> From: ryantxu <ryan...@gmail.com> >>>To: jenkinsci-users@googlegroups.com >>>Sent: Tuesday, January 15, 2013 1:04 PM >>>Subject: Git errors on jenkins slave (windows) >>> >>> >>> >>>I had a working jenkins build... then I started poking and am struggling to >>>get it back on its feet! >>> >>> >>>I *think* the error is that jenkins can not find the git path. It is in the >>>environment %PATH% >>> >>> >>>From cmd, when I run: >>>C:\Users\ryan>git --version >>>git version 1.8.0.msysgit.0 >>> >>> >>> >>> >>>The build error I get is: >>> >>> >>>Building remotely on build_101 in workspace C:\jenkins\workspace\product >>>Build .NET 10.1 >>>Checkout:product Build .NET 10.1 / C:\jenkins\workspace\product Build .NET >>>10.1 - hudson.remoting.Channel@3c4ae05b:build_101 >>>Using strategy: Default >>>Cloning the remote Git repository >>>Cloning repository g...@github.com:company/product.git >>>Error trying to determine the git version: Error performing command: >>>--version >>>Assuming 1.6 >>>ERROR: Error cloning remote repo 'origin' : Could not clone >>>g...@github.com:company/product.git >>>hudson.plugins.git.GitException: Could not clone >>>g...@github.com:company/product.git >>>at hudson.plugins.git.GitAPI.clone(GitAPI.java:273) >>>at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1044) >>>at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:986) >>>at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2309) >>>at hudson.remoting.UserRequest.perform(UserRequest.java:118) >>>at hudson.remoting.UserRequest.perform(UserRequest.java:48) >>>at hudson.remoting.Request$2.run(Request.java:326) >>>at >>>hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) >>>at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) >>>at java.util.concurrent.FutureTask.run(Unknown Source) >>>at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) >>>at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) >>>at hudson.remoting.Engine$1$1.run(Engine.java:58) >>>at java.lang.Thread.run(Unknown Source) >>>Caused by: hudson.plugins.git.GitException: Error performing command: clone >>>-o origin g...@github.com:company/product.git C:\jenkins\workspace\product >>>Build .NET 10.1 >>>at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:904) >>>at hudson.plugins.git.GitAPI.access$000(GitAPI.java:42) >>>at hudson.plugins.git.GitAPI$1.invoke(GitAPI.java:269) >>>at hudson.plugins.git.GitAPI$1.invoke(GitAPI.java:248) >>>at hudson.FilePath.act(FilePath.java:852) >>>at hudson.FilePath.act(FilePath.java:825) >>>at hudson.plugins.git.GitAPI.clone(GitAPI.java:248) >>>... 13 more >>>Caused by: java.lang.NullPointerException >>>at hudson.Launcher.printCommandLine(Launcher.java:607) >>>at hudson.Launcher.maskedPrintCommandLine(Launcher.java:629) >>>at hudson.Launcher$LocalLauncher.launch(Launcher.java:754) >>>at hudson.Launcher$ProcStarter.start(Launcher.java:353) >>>at hudson.Launcher$ProcStarter.join(Launcher.java:360) >>>at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:885) >>>... 19 more >>>Trying next repository >>>ERROR: Could not clone repository >>>FATAL: Could not clone >>>hudson.plugins.git.GitException: Could not clone >>>at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1056) >>>at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:986) >>>at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2309) >>>at hudson.remoting.UserRequest.perform(UserRequest.java:118) >>>at hudson.remoting.UserRequest.perform(UserRequest.java:48) >>>at hudson.remoting.Request$2.run(Request.java:326) >>>at >>>hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) >>> >>>at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) >>>at java.util.concurrent.FutureTask.run(Unknown Source) >>>at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) >>>at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) >>>at hudson.remoting.Engine$1$1.run(Engine.java:58) >>>at java.lang.Thread.run(Unknown Source) >>> >>> >>> >>> >>> >>> >>>any pointers would be great! >>> >>> >>>thank you >>>ryan >>> >>> > > >