修复 Gitlab-CE 仓库检查错误
某一天在 gitlab 管理员邮箱中收到了 ‘GitLab Admin | One project failed its last repository check’ 的邮件,点开一看有一个仓库的自检过不了,于是有了这篇博客
原因调查
根据文档提示,找到自检的日志文件
/var/log/gitlab/gitlab-rails
for Omnibus GitLab installations./home/git/gitlab/log
for installations from source.文件内容
1
E, [2024-10-30T07:24:02.126920 #1053] ERROR -- : path/repository: Could not fsck repository: dangling commit d8e2ebdd41444c2b868d6a321c3246ab6831d351
根据日志信息,看起来是一个 dangling commit 引起的,但是仓库本身并没有这个问题,那很可能是 gitlab 的一些缓存信息出现了问题
解决方案
查找
path/repository
仓库在服务器上的文件路径,这里引用官方的文档- 在左侧栏的底部,选择
Admin
。 - 选择
概览
>项目
,选择项目。 - 定位
相对路径
字段。取值类似于:"@hashed/0b/91/0b91...f9.git"
- 在左侧栏的底部,选择
找到项目文件路径后,我们就可以进行修复了
为避免出现不可控的情况,请确保已经对 gitlab 备份
切换到 git 用户
1
su - git
执行检查(这一步出现 error 不用理会)
将之前找到的项目文件路径替换到命令中
1
2/opt/gitlab/embedded/bin/git \
-C /var/opt/gitlab/git-data/repositories/@hashed/0b/91/0b91...f9.git fsck清理缓存
1
2/opt/gitlab/embedded/bin/git \
-C /var/opt/gitlab/git-data/repositories/@hashed/0b/91/0b91...f9.git gc重新执行检查
1
2/opt/gitlab/embedded/bin/git \
-C /var/opt/gitlab/git-data/repositories/@hashed/0b/91/0b91...f9.git fsck
重新触发仓库自检
- 标题: 修复 Gitlab-CE 仓库检查错误
- 作者: CListery
- 创建于 : 2024-10-30 16:29:16
- 更新于 : 2024-11-15 15:53:32
- 链接: http://clistery.github.io/2024/10/30/gitlab-ce/fix-repository-checks-error/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论