gpt4 book ai didi

git fsck 报告 "sha1 mismatch"

转载 作者:太空狗 更新时间:2023-10-29 13:44:19 26 4
gpt4 key购买 nike

我们在运行 git fsck --full --strict 命令时遇到以下问题:

error: sha1 mismatch ced885d12a0677f2db9025e1e684c72e67283fcd

error: ced885d12a0677f2db9025e1e684c72e67283fcd: object corrupt or missing
error: sha1 mismatch cf5a1546bd2de5611eaf6136fb5ca02b4e358bec

error: cf5a1546bd2de5611eaf6136fb5ca02b4e358bec: object corrupt or missing
error: sha1 mismatch cf5d9d5723014921370de479c54a73230c86a981

error: cf5d9d5723014921370de479c54a73230c86a981: object corrupt or missing
error: sha1 mismatch cf675ce5bc5eeb5937441c6a02976cf2fa40076b

error: cf675ce5bc5eeb5937441c6a02976cf2fa40076b: object corrupt or missing
error: sha1 mismatch cf7c5156cf127eb7141505946df51b2b57925a50

error: cf7c5156cf127eb7141505946df51b2b57925a50: object corrupt or missing
dangling commit 3468455f0d9d055bbe957744aa10e670469d3912
dangling commit daeec54632203157a70bae93b9d7c3290820c2f9
(more dangling commit messages)

(注意:我不太关心悬挂的提交消息。我关注的是 sha1 不匹配问题。)

我对此消息的解释是 git-fsck 从有效负载重新计算 sha1,但发现 sha1 与用于指定对象的不同。存储库中没有丢失对象(我已经检查了 git cat-file)。

奇怪的是,如果我再次运行命令,我仍然有 sha1 消息,但针对不同的对象:

error: sha1 mismatch 1452752024456a509540591c4879b3e3534f457e

error: 1452752024456a509540591c4879b3e3534f457e: object corrupt or missing
error: sha1 mismatch 16e08310d7182e97092d2783c911dbcf66538238

error: 16e08310d7182e97092d2783c911dbcf66538238: object corrupt or missing
dangling commit 3468455f0d9d055bbe957744aa10e670469d3912

注意:存储库在两次运行之间没有变化。

我们正在运行 Linux,当前的 git 版本是:

$git --version
git version 1.7.2.2.170.g5c7f2

错误存在于以前的版本 (1.6.5.rc2.18.g6d8b) 中。这些 git 是使用 gcc 3.4.4 从源代码构建的。

但是,当我在另一台主机上复制存储库时,git fsck 报告完全没有问题。那里的 git 版本是 1.7.2.1(由 Fedora 提供)。

我做了以下观察:

  1. 具有无效 sha1 的对象通常在同一范围内(在第一个示例中,sha1 以 ce 或 cf 开头)并且在 fsck 运行期间的一小段时间内会触发错误。我相信 git-fsck 会进行有序扫描(或者对象可能在包内排序)。
  2. 那些对象是相对较大的 blob (>900k)
  3. 我们针对可能的硬件内存故障运行了 15 分钟的完整内存测试。我们没有发现任何问题。在此服务器上没有观察到其他奇怪的行为,该服务器还执行许多其他非 git 任务。
  4. git gc 没有提示

到目前为止的假设:

  1. 此问题是由于git(库版本?编译器?)构建不当造成的
  2. 我们的内存测试未能发现真正的内存问题。
  3. 在 git-fsck sha1 计算中存在一个微妙的错误,该错误随机发生(或更准确地说是在某些短时间窗口内)用于大 blob。

我们如何解决这个问题?

最佳答案

这一定是某种硬件问题。

关于git fsck 报告 "sha1 mismatch",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3576621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com