-
Bug
-
Resolution: Not A Defect
-
Minor
-
Jenkins 2.60 LTS (service), Windows Server 2012, Git for Windows 2.13.3.windows.1, Git Plugin 3.3.2, Git Client Plugin 2.4.6, Pipeline 2.5
When attempting to perform an authenticated Git operation from our Master node through Jenkins, it will always fail with the following error:
hudson.plugins.git.GitException: Command "C:\Program Files\Git\bin\git.exe ls-remote -h <address-to-repo>.git" returned status code 128:
stdout:
stderr: 0 [main] ssh 8928 C:\Program Files\Git\usr\bin\ssh.exe: *** fatal error - add_item ("??\C:\Program Files\Git", "/", ...) failed, errno 1
Stack trace:
Frame Function Args
000FFFF9B90 0018005CE9E (0018023D522, 0018021AC39, 00600010000, 000FFFF8B10)
000FFFF9B90 00180046559 (000FFFFABC0, 000FFFF9B90, 1D2FF07C4E9D602, 00000000000)
000FFFF9B90 00180046592 (000FFFF9B90, 00000000001, 00600010000, 505C3A435C3F3F5C)
000FFFF9B90 001800CADBB (00000000000, 00140000024, 00000000000, 1D2FF07CDDAC80D)
000FFFFCBE0 00180118755 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFCCB0 00180046B65 (00000000000, 00000000000, 00000000000, 00000000000)
00000000000 001800457C3 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0 00180045874 (00000000000, 00000000000, 00000000000, 00000000000)
End of stack trace
fatal: Could not read from remote repository. Please make sure you have the correct access rights
and the repository exists.
This applies to both SSH and HTTP authentication. Performing the exact same operations directly on the server and/or using JGit works as expected. We had originally been using JGit for operations performed on the master node (Polling, SCM checkout of Pipelines, etc) as a workaround, but applying Git Polling from within a Pipeline script (Jenkinsfile) appears to override the JGit specification and use the CLI Git instead, resulting in polling always failing due to the error above.
Since your master node is a Windows machine, I would guess that you've somehow incorrectly declared the git executable for that node. That configuration error could be either in the "Manage Jenkins" -> "Global Tool Configuration" -> "Git" section, or it might be in the agent configuration for the master agent.
It is better to use "git" as the git executable, then adjust the system-wide PATH variable to include the path. The git for Windows installer will do that if its defaults are chosen.
Don't use "git-bash.exe" or "git-cmd.exe" as the git executable. Those are helper programs included with the git for Windows distribution and they break the plugin due to their subtle differences compared to git.exe and git.cmd.
It is much better to review these types of configuration questions with the jenkins users mailing list before submitting a bug report. There are many more readers of the jenkins users mailing list than there are readers of bug reports to the git plugin.