gitlab升级后Runner 500报错
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;
参考: