Пришло на почту письмо с таким заголовком от GitLab. Что делать?
- Переходим по ссылке “See the affected projects in the GitLab admin panel” из письма (для примера допустим, что она приведёт, сюда: http://git.local/admin/projects?last_repository_check_failed=1)
- Переходим в проблемный проект (Пусть это будет project1 в группе group1 http://git.local/admin/projects/group1/project1)
- Ищем значение поля “Gitaly relative path”. Пусть оно будет таким @hashed/aa/bb/aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899.git
- Идём в консоль сервера (например, по ssh) и проверяем состояние репозитория
/opt/gitlab/embedded/bin/git -C /var/opt/gitlab/git-data/repositories/@hashed/aa/bb/aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899.git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (1239/1239), done.
Verifying commits in commit graph: 100% (30/30), done.
error: Could not read 0123456789abcdef01234567890abcdef0123456
failed to parse commit 0123456789abcdef01234567890abcdef0123456 from object database for commit-graph - В той же консоли выполняем сборку мусора в репозитории:
/opt/gitlab/embedded/bin/git -C /var/opt/gitlab/git-data/repositories/@hashed/aa/bb/aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899.git gc
Enumerating objects: 1242, done.
Counting objects: 100% (1242/1242), done.
Compressing objects: 100% (302/302), done.
Writing objects: 100% (1242/1242), done.
Selecting bitmap commits: 163, done.
Building bitmaps: 100% (106/106), done.
Total 1242 (delta 938), reused 1239 (delta 936), pack-reused 0 - Повторно проверяем состояние репозитория
/opt/gitlab/embedded/bin/git -C /var/opt/gitlab/git-data/repositories/@hashed/aa/bb/aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899.git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (1242/1242), done.
Verifying commits in commit graph: 100% (218/218), done.
Всё починилось. - На страничке репозитория в GitLab (http://git.local/admin/projects/group1/project1) заставим его перепроверить репозиторий (Кнопка “Trigger repository check”).
- Наслаждаемся ушедшей проблемой 🙂