gitlab升级后Runner 500报错

发布时间 2023-09-29 22:52:20作者: windysai
gitlab升级后500报错
  今天是月饼节哦。长假最适合梳理下这段时间的工作经验。
  上个月说到gitlab升级到16.2.3,其实升级后没几天遇到一个比较棘手的问题:超级管理员登录进去,修改什么配置保存后都会报错500,不仅如此,还发现项目无法移动命名空间(可以理解为a用户的项目移到b用户上),也是移动后保存报错500。

 

  网上找了很久的资料都没找到解决方法,直到看到说要将配置文件恢复为默认配置,及修改gitlab内置数据库。操作之前备份好配置文件,可以的话,做个快照以防万一。
问题一:管理员菜单设置无法保存
~] gitlab-rails console
> ApplicationSetting.first.delete
> ApplicationSetting.first
=> nill
# 执行后重载配置文件发现问题解决
~] gitlab-ctl reconfigure
参考:http://www.manongjc.com/detail/40-jcpocfeoxzevluz.html
 
问题二:项目不能移动命名空间
报错信息:lTransfer project ib/gitlab/crypto_helper.rb:28:in `aes256_gcm_decrypt'
解决关键:重置SQL数据库中的项目Token
 
(1)进入gitlab数据库控制台
gitlab-rails dbconsole

 

(2)查找全部项目的token:
gitlabhq_production=> SELECT name, runners_token_encrypted FROM Projects

 因为当时生怕改掉token项目都用不了,所以改的时候我找了一个项目去测试,姑且名字叫A

SELECT name, runners_token_encrypted FROM Projects WHERE Name = '项目A';

## 拿到上面A的token值,然后重置为null
update Projects set runners_token_encrypted = null where Name = '项目A';

## 再次确认是否更新成功
SELECT name, runners_token_encrypted FROM Projects WHERE Name = '项目A';

当我发现改了项目A的token后,能成功修改命名空间,就很大胆地进行全部项目清空token(再次强调修改前做好快照备份,因为可能你们的环境跟我的不同,不能一概而论!!!)

update Projects set runners_token_encrypted = null;
 
参考: