【问题标题】:buildbot using msysGit causing intermittent datastreram errorbuildbot 使用 msysGit 导致间歇性数据流错误
【发布时间】:2010-07-22 13:33:24
【问题描述】:

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

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

它间歇性地失败(大约 50 次构建)并出现以下错误:

error: inflate: 数据流错误(数据校验不正确) 致命:pack 在偏移量 26936 处有坏对象:inflate 返回 -3 致命:索引包失败 致命:写入错误:无效参数

有谁知道这可能是什么原因造成的以及我们如何解决它?

【问题讨论】:

    标签: git msysgit samba buildbot


    【解决方案1】:

    此问题的偶然性可能会导致外部原因,例如硬件问题(磁盘或内存损坏)。
    例如,请参阅this thread。他们尝试a all process 正确地重新克隆坏的仓库,但那是针对旧的 git 1.5,所以它可能不再准确了。
    我将流程留在这里仅供参考。

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

    1/ 初始化一个新的空存储库,
    2/ 添加“原点”遥控器: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' 获取(正确更新参考):git fetch origin
    6/ 手动 (!!!) 删除 borked 的临时对象文件:

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

    7/ 现在,'git gc'

    如果您已经有一个(无聊的)结帐,那么您可能可以用 4、6 和 7 侥幸逃脱。

    【讨论】:

      猜你喜欢
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      相关资源
      最近更新 更多