我的个人笔记本电脑上有几个 git 和git-annex存储库,它运行带有 git 版本 2.24.3(Apple Git-128)和 git-annex 8.20210310 的 MacOS 11.2.3。
将我的笔记本电脑升级到 11.2.x (Big Sur) 后,我开始注意到在磁盘上运行存储库时出现了更高级别的错误git fsck
,即使没有明确的原因导致此类错误发生。为了解决这个问题,我已经从遥控器中删除并重新克隆了许多存储库,以试图消除这些错误。
最近,我git fsck
在一个 git-annex 存储库中发现了我之前删除并重新克隆的错误(尽管我也合并了来自另一个远程的提交)。我还在这个 repo 中观察到了莫名其妙的非确定性行为git fsck
,其中多次重新运行命令会产生不同的结果,如下所示:
nikhil@laptop myrepo% git fsck
error: unable to mmap .git/objects/cb/e4d5322a6295944dd546471332f97b3592bbd2: Interrupted system call
error: cbe4d5322a6295944dd546471332f97b3592bbd2: object corrupt or missing: .git/objects/cb/e4d5322a6295944dd546471332f97b3592bbd2
Checking object directories: 100% (256/256), done.
Checking objects: 100% (277327/277327), done.
Checking connectivity: 292264, done.
dangling tree f258d3cd1745f93f8571c5c3e3b4c6b5ba54767b
missing tree cbe4d5322a6295944dd546471332f97b3592bbd2
nikhil@laptop myrepo% git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (277327/277327), done.
Checking connectivity: 292267, done.
nikhil@laptop myrepo% git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (277327/277327), done.
fatal: failed to read object 2d218c33679a8d84e43eaa1189eb22dc6e35bf07: Interrupted system call
nikhil@laptop myrepo% git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (277327/277327), done.
fatal: failed to read object deec5afa6919ad1ae0433335bab9bd87ef95f5d0: Interrupted system call
在这里,git fsck
完成一次检测到问题,完成一次未检测到问题,然后由于两个不同对象上的读取错误而失败两次。
这表明根本原因可能是某些文件系统或磁盘损坏,但反对这一点的一个信号是,在升级到 Big Sur 后开始出现错误,并且对于大多数存储库来说,删除和重新克隆都被压缩了。在遇到这些错误以检查磁盘损坏后,我以前也运行过 MacOS 磁盘实用程序,但没有检测到任何问题 - 但是这是不久前的事情,我正在重新运行以确认。
其他人是否遇到过这些问题——通常是git fsck
升级到 MacOS 11.2.x 后的错误率更高,或者特别是在git fsck
. 这些错误的根本原因是什么?
编辑:torek 在下面的评论导致我发现了这个 SuperUser question,这表明这样的错误可能与防病毒有关。我目前正在运行 BitDefender,但在其“屏蔽”功能关闭时遇到了这些问题。过去,我也曾在我的笔记本电脑上安装过 Avast 和 Avira,但在我的笔记本电脑上已经卸载了几个月。