GitLab - 升級gitlab 版本后項目的webhook等頁面顯示500問題


請注意:GitLab升級請嚴格按照官方文檔版本升級過程進行升級,升級前請備份好數據。
官方地址:https://docs.gitlab.com/ee/update/index.html#upgrade-paths,
若並非按官方文檔升級會出現以下問題,

gitlab 13.3.1升級到14.0.0版本后部分部署過webhook項目的webhook頁面顯示500,其他沒有部署過webhook的項目是正常可以打開的

原因是因為舊的 webhook 與新的 webhook 存在兼容性問題

==> /var/log/gitlab/gitlab-rails/production.log <==

ActionView::Template::Error ():
    1: %li
    2:   .row
    3:     .col-md-8.col-lg-7
    4:       %strong.light-header= hook.url
    5:       %div
    6:         - hook.class.triggers.each_value do |trigger|
    7:           - if hook.public_send(trigger)

app/views/shared/web_hooks/_hook.html.haml:4
app/views/shared/web_hooks/_index.html.haml:11
app/views/shared/web_hooks/_index.html.haml:10
app/views/projects/hooks/index.html.haml:14
app/controllers/application_controller.rb:128:in `render'
app/controllers/application_controller.rb:487:in `set_current_admin'
lib/gitlab/session.rb:11:in `with_session'
app/controllers/application_controller.rb:478:in `set_session_storage'
lib/gitlab/i18n.rb:99:in `with_locale'
lib/gitlab/i18n.rb:105:in `with_user_locale'
app/controllers/application_controller.rb:472:in `set_locale'
app/controllers/application_controller.rb:466:in `set_current_context'
lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'
lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'
lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'
lib/gitlab/metrics/web_transaction.rb:21:in `run'
lib/gitlab/metrics/rack_middleware.rb:16:in `call'
lib/gitlab/middleware/speedscope.rb:13:in `call'
lib/gitlab/request_profiler/middleware.rb:17:in `call'
lib/gitlab/jira/middleware.rb:19:in `call'
lib/gitlab/middleware/go.rb:20:in `call'
lib/gitlab/etag_caching/middleware.rb:21:in `call'
lib/gitlab/middleware/multipart.rb:172:in `call'
lib/gitlab/middleware/read_only/controller.rb:50:in `call'
lib/gitlab/middleware/read_only.rb:18:in `call'
lib/gitlab/middleware/same_site_cookies.rb:27:in `call'
lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'
lib/gitlab/middleware/basic_health_check.rb:25:in `call'
lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'
lib/gitlab/middleware/request_context.rb:21:in `call'
config/initializers/fix_local_cache_middleware.rb:11:in `call'
lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:74:in `call'
lib/gitlab/middleware/release_env.rb:12:in `call'

解決辦法

由於我webhook里的數據可以重新配置,這里只需恢復webhook頁面為正常即可 ,如果需要原數據的話請提前備份原目錄下/etc/gitlab/gitlab-secrets.json文件

進入gitlab數據庫

root@984db48e6398:/# gitlab-rails db
psql (12.6)
Type "help" for help.

查看一下webhook500的項目ID

通過項目ID查出hook的ID

gitlabhq_production=> select id from web_hooks where project_id=65;
 id
----
 35
 40
(2 rows)

可以看到我們這里查出了兩個ID,分別為35和40,我們分辯不出來索性全部刪除

先申請一下項目的令牌tocken

然后退出數據庫連接執行api刪除操作

curl --header "Private-Token: 3hDkYwv-xxxxx8nU" -X DELETE http://git.xxxxx.com/api/v4/projects/65/hooks/35
curl --header "Private-Token: 3hDkYwv-xxxxxu8nU" -X DELETE http://git.xxxxx.com/api/v4/projects/65/hooks/40

然后刷新webhook頁面即可恢復正常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM