-
Bug
-
Resolution: Not A Defect
-
Major
-
Jenkins 2.60.1
Git Plugin 3.3.1
Windows Server 2012R2
Java 1.8.0_111
We have had a few intermittent issues with the GIT plugin and are unable to checkout from our GIT repo on TFS.
Started by remote host 10.97.31.118 Checking out git https://tfs.contoso.com/TfsVersionControl/myGitRepo/_git/myPipeline to read Pipeline/DeploymentOrchestration/Jenkins/Jenkinsfile > git.exe rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git.exe config remote.origin.url https://tfs.contoso.com/TfsVersionControl/myGitRepo/_git/myPipeline # timeout=10 Fetching upstream changes from https://tfs.contoso.com/TfsVersionControl/myGitRepo/_git/myPipeline > git.exe --version # timeout=10 using GIT_ASKPASS to set credentials > git.exe fetch --tags --progress https://tfs.contoso.com/TfsVersionControl/myGitRepo/_git/myPipeline +refs/heads/*:refs/remotes/origin/* ERROR: Error fetching remote repo 'origin' hudson.plugins.git.GitException: Failed to fetch from https://tfs.contoso.com/TfsVersionControl/myGitRepo/_git/myPipeline at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:812) at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1079) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1110) at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:109) at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:130) at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:59) at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:246) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:405) Caused by: hudson.plugins.git.GitException: Command "git.exe fetch --tags --progress https://tfs.contoso.com/TfsVersionControl/myGitRepo/_git/myPipeline +refs/heads/*:refs/remotes/origin/*" returned status code 128: stdout: stderr: fatal: unable to access 'https://tfs.contoso.com/TfsVersionControl/myGitRepo/_git/myPipeline/': schannel: next InitializeSecurityContext failed: SEC_E_BUFFER_TOO_SMALL (0x80090321) - The buffers supplied to a function was too small. at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1903) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1622) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:71) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:348) at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:810) ... 8 more ERROR: Error fetching remote repo 'origin' Finished: FAILURE
This is not a bug in the Jenkins git plugin or in Jenkins. I believe that the output mentioning SEC_E_BUFFER_TOO_SMALL is coming from the server side of the git conversation. I suspect that means the issue is in Team Foundation Server, or one of its components, rather than command line git.
A stackoverflow article suggests that there may be a disagreement on number of bytes expected by an SSL function on the server.
The waffle project had a similar report, and as far as I can tell, they made the change on the server side as well.
As a possible work around, you could try switching to use jgit instead of command line git. It may behave better. JGit can be enabled from the "Global Tool Configuration" page. Once it is enabled, a pick list is then available in each job to choose the Default implementation, or JGit.