
Tengo una instancia de Gitlab autohospedada y de repente uno de mis proyectos envía correos electrónicos diciéndome que la verificación del repositorio está fallando.
Corro gitlab-15.0.0-ee
a través de la ventana acoplable. Revisé el archivo de registro repocheck.log
y este es el contenido:
E, [2022-06-07T19:08:10.599782 #435] ERROR -- : xxx/xxx: Could not fsck repository: dangling blob ed44e089d0eaf14fc152871bdca12aa6de01a5f1
dangling blob 4317819507d8e4e3ddcce6f3c01b8890e56cc157
dangling commit 2b1f190885dae6bbef0986cd50bc61c790331312
dangling blob 0f7c7218e71e1bd8b964184e149c214734d41944
dangling blob 6f16132326f43f1fd3a9a9cd717830643a162c8a
dangling commit 3b87a380a8095fe83fed257fd89e178323b89bea
dangling commit 14ca539d07483fc309f94cea685fc893a3efaf51
dangling commit 3cf64b574d2ecbc4ffe06559f9495db22bb5f2c9
dangling blob 535b94cb0a9048bbe45eb35ba53a02fe795be823
dangling commit 6778eef6143982b0d96f2934e515b36254e9a31f
dangling commit 0294e6bca9f2a5cacd7bbea61c62e5b5d92eb98f
dangling blob 4144f7437938ea8b0fe5ce6c8a498995b4f96f7c
dangling blob b64cd7abaa200ac4fea060b0dfb8542e260cb301
dangling blob 90545fea55b5e5c1f6245281ebac02b1dd8bfd04
error: Could not read 0957f8065b8fecfa80005eafa673a2a8b67ddbed
failed to parse commit 0957f8065b8fecfa80005eafa673a2a8b67ddbed from object database for commit-graph
error: Could not read 0a70090f6519febb2edbd9c416b5dff46d92d1a1
failed to parse commit 0a70090f6519febb2edbd9c416b5dff46d92d1a1 from object database for commit-graph
error: Could not read 126be254518dfd5b29a553fcfe7843787cbeed08
....
y el archivo tiene alrededor de 200 confirmaciones más que no están presentes en el gráfico de confirmación.
En mi repositorio local, la mayoría de esas confirmaciones todavía están presentes y, de hecho, no son accesibles, por lo que git gc
en el servidor eliminó aquellas confirmaciones que todavía están presentes en mi repositorio local. Parece que no me faltan solicitudes de fusión, por lo que no tiene sentido para mí por qué gitlab piensa que esto es un problema.
Lamentablemente eldocumentación oficiales muy vago acerca de qué hacer además de indicarle que ubique el repocheck.log
archivo o que haga clic enBorrar todas las comprobaciones del repositoriosi el error persiste. Eso no ayuda en absoluto, porque incluso después de hacer clic enBorrar todas las comprobaciones del repositorio, sigo recibiendo el mismo error. Entonces, ¿qué está probando realmente gitlab y por qué falla?
Respuesta1
Encuentre todos los repositorios que fallaron en el enlace "Ver los proyectos afectados en el panel de administración de GitLab" que recibió de GitLab http://yourgitlab_link/admin/projects?last_repository_check_failed=1
Verifique
/var/log/gitlab/gitlab-rails/repocheck.log
el archivo que se genera cuando se activa la "Verificación del repositorio de activación" en el área de administración del proyecto. Si el archivo está vacío, active nuevamente la verificación del repositorio manualmente. Este paso no es tan importante aunque el archivo esté vacío o no, porque obtendrá un resultado similar con el comando fsck que se describe un poco más abajo.Abra el menú del proyecto específico->Admin->Proyectos->su proyecto y busque “ruta relativa de Gitaly”
@hashed/48/b3/48b361d46638bfa4eee090c158a750a69c7beec3a62e703e2801125551b1b157.git
Vaya a la consola acoplable (conéctese al contenedor) o a la consola del servidor Gitlab Omnibus y ejecute el comando fsck en ese comando de repositorio específico.Asegúrese de ejecutar el comando como el usuario correcto
git
en las instalaciones generales, de lo contrario, los archivos se crean con el propietarioroot
, en el que gitlab no puede escribir:/opt/gitlab/embedded/bin/git -C /var/opt/gitlab/git-data/repositories/@hashed/48/b3/48b361d46638bfa4eee090c158a750a69c7beec3a62e703e2801125551b1b157.git fsck
y verifique si hay algún error comoerror: Could not read 098b53ffbe581e25b… failed to parse commit 098b53ffbe581e25b… from object database for commit-graph
ahora ejecute el recolector de basura gc con
/opt/gitlab/embedded/bin/git -C /var/opt/gitlab/git-data/repositories/@hashed/48/b3/48b361d46638bfa4eee090c158a750a69c7beec3a62e703e2801125551b1b157.git gc
y verifique nuevamente el repositorio con fsck
/opt/gitlab/embedded/bin/git -C /var/opt/gitlab/git-data/repositories/@hashed/48/b3/48b361d46638bfa4eee090c158a750a69c7beec3a62e703e2801125551b1b157.git fsck
y los errores y fallas deben borrarseejecute nuevamente "Activar verificación del repositorio" para verificar si la verificación del repositorio se realizó correctamente. Si tuvo éxito, entonces este repositorio no debería estar en la lista de repositorios que no pasaron la verificación del repositorio (consulte los proyectos afectados en el panel de administración de GitLab) o http://yourgitlab_link/admin/projects?last_repository_check_failed=1
Fuente:https://forum.gitlab.com/t/gitlab-projects-failed-their-last-repository-check/19147/3
Respuesta2
Consulte la documentación de GitLab:
Administrar GitLab > ... > Verificaciones del repositorio > Ejecutar una verificación usando la línea de comando
(seleccione la versión de la documentación que mejor se adapte a su instalación)