大约两年前,我开始在本地 x86 Debian VM 内运行 GitLab CE,去年我决定将 GitLab CE 实例迁移到专用的 Intel NUC 服务器。一切似乎都很顺利,没有任何问题,并且我的 GitLab CE 实例截至今天是最新的(运行 13.4.2)。
但我最近发现,一些被移动的存储库给出了“没有存储库!” 访问他们的项目页面时出错,如果他们有任何问题板、合并请求等,这些也都消失了。但您不会怀疑它,因为损坏的存储库与我一直使用的工作存储库一起出现在存储库列表中。
如果我必须对这些损坏的存储库进行推理,那就是它们在一年前进行了最后一次活动,除了初始推送之外,没有对它们进行任何推送,或者是否进行了更改、创建了问题或合并请求创建,它实际上是一年多前。
其中一些损坏的存储库相当大,有很多历史记录,而其他存储库则非常小(实际上只是跟踪 shell 脚本的更改),所以我认为存储库大小本身与此没有任何关系。
如果我运行 GitLab 诊断检查sudo gitlab-rake gitlab:check,除了“散列存储”之外,一切看起来都很好:
All projects are in hashed storage? ... no
Try fixing it:
Please migrate all projects to hashed storage
Run Code Online (Sandbox Code Playgroud)
但随后运行sudo gitlab-rake gitlab:storage:migrate_to_hashed似乎没有完成(仪表板中有六个失败的作业),并且再次运行“gitlab:check”仍然表明存在“散列存储”问题。我也尝试过运行sudo gitlab-rake gitlab:git:fsck,sudo gitlab-rake cache:clear但这些命令似乎没有什么区别。
幸运的是,我的机器上有所有缺少的存储库的最新版本,事实上,我仍然有运行 GitLab CE 12.8.5 的原始虚拟机(存储库的副本稍微过时了。)
所以我的问题是:
migrate_to_hashed任务再次未能完成。)提前致谢。
好的,所以我想我知道发生了什么。
显然这里的场景是:
解决方法是:
sudo gitlab-rake gitlab:storage:migrate_to_hashed过程sudo gitlab-rake gitlab:check以确保输出包含以下消息:All projects are in hashed storage? ... yes
Run Code Online (Sandbox Code Playgroud)
如果成功,项目将显示“NO REPOSITORY!” 现在应该已完全恢复。
了解是否需要运行此过程的关键是您是否:
hashed_storage:hashed_storage_project_migrate
Run Code Online (Sandbox Code Playgroud)
与错误
OpenSSL::Cipher::CipherError:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3923 次 |
| 最近记录: |