gitlab 管理区域出现 500 错误

Sch*_*ico 2 linux gitlab rhel7

如何重现:

  1. 以管理员身份登录
  2. 进入管理菜单
  3. 点击概览 - 跑步者
  4. 或者在设置中点击保存

结果:500 错误:哎呀,我们这边出了点问题。

哪个系统正在运行?

RHEL 7,带有 Nginx 和乘客的出站 gitlab

错误:

OpenSSL::Cipher::CipherError ():

lib/gitlab/crypto_helper.rb:27:in `aes256_gcm_decrypt'
app/models/concerns/token_authenticatable_strategies/encrypted.rb:55:in `get_token'
app/models/concerns/token_authenticatable_strategies/base.rb:27:in `ensure_token'
app/models/concerns/token_authenticatable_strategies/encrypted.rb:42:in `ensure_token'


ActionView::Template::Error ():
    37: 
    38:     .col-sm-6
    39:       .bs-callout
    40:         = render partial: 'ci/runner/how_to_setup_runner',
    41:                  locals: { registration_token: Gitlab::CurrentSettings.runners_registration_token,
    42:                            type: 'shared',
    43:                            reset_token_url: reset_registration_token_admin_application_settings_path }
Run Code Online (Sandbox Code Playgroud)

Joo*_*tse 5

我几乎可以肯定 gitlab 从 /etc/gitlab/gitlab-secrets.json (多功能安装)或 $GITLAB_HOME/config/secrets.yml (基于源的安装)读取的解密密钥是错误的。如果您不关心 runner_registration_token,您可以从控制台重置它:

root@gitlab:/# gitlab-rails console
-------------------------------------------------------------------------------------
 GitLab:       11.5.1 (c90ae59)
 GitLab Shell: 8.4.1
 postgresql:   9.6.8
-------------------------------------------------------------------------------------
Both Deployment and its :status machine have defined a different default for "status". Use only one or the other for defining defaults to avoid unexpected behaviors.
Loading production environment (Rails 4.2.10)
irb(main):001:0> ApplicationSetting.current.reset_runners_registration_token!
=> true
irb(main):002:0> 
Run Code Online (Sandbox Code Playgroud)

  • GitLab: 13.12.0-ee EE 正在加载生产环境 (Rails 6.0.3.6) irb(main):001:0> ApplicationSetting.current.reset_runners_registration_token!回溯(最近一次调用最后):5:来自(irb):1 4:来自app/models/concerns/token_authenticatable.rb:53:在“add_authentication_token_field中的块”中3:来自app/models/concerns/token_authenticatable_strategies/base。 rb:44:在“重置令牌!”中 2: 来自 lib/gitlab/database.rb:370:in `transaction' 1: 来自 lib/gitlab/database.rb:371:in `block in transaction' OpenSSL::Cipher::CipherError () (3认同)