TeamCity:“git fetch”命令失败。stderr:套接字已关闭

TeamCity:“git fetch”命令失败。stderr:套接字已关闭

我们已经与 TeamCity 合作多年,并且已经使用 git 作为版本控制系统好几周了。我已经设置了与 TeamCity 的集成,并且运行良好。我们有四个不同的项目使用 git

最近一些项目已经间歇性停止工作。

构建无法启动。类似这样的消息以红色显示。(使用不同的代理):

无法在 Teamcityagent8_Continuous5(以及另外 1 个)上启动构建 #1094

构建日志几乎没有什么内容:

[16:12:46]Checking for changes
[16:12:49]Failed to start build
[16:12:49]Failed to collect changes, error: Error collecting changes for VCS repository 'http://foo-app-sprint:7990/scm/BAR/qux.git#master'
'git fetch' command failed.
stderr: Socket Closed
[16:12:49]Cannot calculate build metric 'percent of class coverage' - no value

奇怪的是,其他项目也有非常相似的配置,而且运行良好。它们使用相同的构建代理。

我们使用 Atlassian Stash 作为 Git 服务器。我查看了那里的所有日志,当我在 Team City 中强制运行时,什么也没有发生。因此,看起来 TeamCity 甚至无法访问 Git 服务器。

如果我在 TeamCity 中测试 VCS 连接,它可以工作。

我已经尝试重新启动 Stash。但没有帮助。

我们正在与特性分支。但我试过关闭它们,但没用。

如今,构建实际上已经运行了几次,但问题再次出现。

我们正在使用 TeamCity Enterprise 7.1.4(内部版本 24331)和 Atlassian Stash v2.1.2。构建代理和 Stash 均在 Windows 服务器上运行。

知道哪里出了问题以及如何解决吗?

我已经发过jetbrains 开发者论坛上的这个问题,但没有得到答案。

答案1

我在使用 TeamCity 时也遇到过类似的问题。

错误:“git fetch”命令失败...由于缺少提交而导致。

在我的开发机器上抓取工作正常。此外,使用命令行时,缺失的提交也存在。

$ git show b18264d

我通过以下方式修复了此错误:

  1. 从我的本地 git repo 克隆一个裸仓库

$ git clone --bare MyGitRepo MyGitRepo.git

  1. 使用 #1 中的裸克隆替换服务器上的 git repo
  2. 停止 TeamCity 服务
  3. 删除 C:\ProgramData\JetBrains\TeamCity\system\caches\git
  4. 重新启动 TeamCity 服务

答案2

@Fuyu Persimmon 回答的最后一部分帮我解决了这个问题。

你只需要删除构建服务器上的 git 缓存(默认路径.BuildServer/system/caches/git [来源]) 并再次开始构建。

相关内容