728x90
반응형
상황
- GitLab 프로젝트에서 Setting > CI/CD 진입 시 500 오류가 발생했다.
- 무슨일인지 싶어서, production.log 파일을 열어보니 CI/CD page에 접근할 때 마다 Template::Error ?? 이라고 오류가 발생하고 있었다.
Started GET "/.../-/settings/ci_cd" for 172.23.0.1 at 2023-02-21 02:05:00 +0000
Processing by Projects::Settings::CiCdController#show as HTML
Parameters: {"namespace_id"=>"-", "project_id"=>"-"}
Rendered layout layouts/project_settings.html.haml (Duration: 44.8ms | Allocations: 24822)
Completed 500 Internal Server Error in 93ms (ActiveRecord: 17.3ms | Elasticsearch: 0.0ms | Allocations: 40155)
ActionView::Template::Error ():
9: = render partial: 'ci/runner/setup_runner_in_aws',
10: locals: { registration_token: @project.runners_token }
11: %hr
12: = render partial: 'ci/runner/how_to_setup_runner',
13: locals: { registration_token: @project.runners_token,
14: type: s_('Runners|specific'),
15: reset_token_url: reset_registration_token_namespace_project_settings_ci_cd_path,
lib/gitlab/crypto_helper.rb:28:in `aes256_gcm_decrypt'
app/models/concerns/token_authenticatable_strategies/encryption_helper.rb:18:in `decrypt_token'
app/models/concerns/token_authenticatable_strategies/encrypted.rb:78:in `get_encrypted_token'
app/models/concerns/token_authenticatable_strategies/encrypted.rb:117:in `token_set?'
app/models/concerns/token_authenticatable_strategies/base.rb:46:in `ensure_token!'
app/models/concerns/token_authenticatable.rb:54:in `block in add_authentication_token_field'
app/models/project.rb:1920:in `runners_token'
app/views/projects/runners/_specific_runners.html.haml:12
app/views/projects/runners/_settings.html.haml:5
...
처리방법
- 수 많은 case와 해결방법이 있겠지만, 여기서 발생한 오류는 gitlab-psql에 접속해서 테이블들의 데이터를 초기화하는 것으로 해결이 되어, 그방법을 공유합니다.
gitlab-psql Tables 데이터 초기화
- gitalb 컨테이너로 접속합니다.
#gitlab connection
docker exec -it gitlab bash
- gitlab 컨테이너에 접속했다면, 아래와 같이 psql에 접속 합니다
root@gitlab> gitlab-psql -d gitlabhq_production
psql (13.6)
Type "help" for help.
gitlabhq_production=#
- 다음 테이블에 데이터를 전부 null로 업데이트 해줍니다.
gitlabhq_production=# UPDATE projects SET runners_token = null, runners_token_encrypted=nul
l;
UPDATE 38
gitlabhq_production=# UPDATE namespaces SET runners_token = null, runners_token_encrypted=null;
UPDATE 60
gitlabhq_production=# UPDATE application_settings SET runners_registration_token_encrypted = null;
UPDATE 1
gitlabhq_production=# UPDATE ci_runners SET token = null, token_encrypted= null;
UPDATE 0
gitlabhq_production=#
확인
- 프로젝트 Settings > CI/CD 를 선택하면 500 오류가 아니라, 정상적으로 페이지가 열립니다.
오늘도 해결!
728x90
반응형