buildbot使用msysGit导致间歇性datastreram错误

时间:2010-07-22 13:33:25

标签: git msysgit samba buildbot

我们正在使用buildbot来运行持续集成。内置的Git构建步骤生成以下命令行: C:\Program Files\Git\bin\git.EXE fetch -t file:///s:/Repositories/repo +master

s:是映射在buildbot slave上的debian服务器上的samba共享。

它会间歇性地失败(一次在~50次构建中),并出现此错误:

error: inflate: data stream error (incorrect data check)
fatal: pack has bad object at offset 26936: inflate returned -3
fatal: index-pack failed
fatal: write error: Invalid argument

有没有人知道可能导致这种情况的原因以及我们如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

此问题的随意性可能会导致外部原因,例如硬件(磁盘或内存损坏) 例如,请参阅this thread。他们尝试a all process正确地重新克隆坏回购,但那是旧的git 1.5,所以它可能不再准确。
我将这个过程留在这里只是为了获取信息。

  

显然,获得正确克隆的最简单方法是:

1 /初始化一个新的空存储库,
2 /这样添加'origin'远程:git remote add -f origin http://repo.or.cz/r/msysgit.git
3 /尽管有错误,继续手动取出包装:

(cd .git/objects/pack/ && curl -O \

http://repo.or.cz/r/msysgit.git/objects/pack/pack-5b51af9cb1b1122d27ddd53d40a8c3e4472ae9e4.pack)

4 /使用附加的包添加未损坏的对象:
git bundle unbundle borked.bundle
5 /现在再次从'origin'获取(正确更新refs):git fetch origin
6 /手动(!!!)删除borked临时目标文件:

find .git -name \*.temp -exec rm {} \;

7 /现在,'git gc'

  

如果您已经有一个(borked)结账,那么您可以通过4,6和7来逃避。