Gitlab从16.7.5升级到16.8.2后无法保存管理员设置
Gitlab 16.8.2 修改管理员设置报错(execution expired)的解决办法
问题场景
升级Gitlab从16.7.5到16.8.2后,管理员(包括root用户)修改应用设置时触发报错:
- Help page documentation base url is blocked: execution expired
- Diagramsnet url is blocked: execution expired
- Public runner releases url is blocked: execution expired
解决方案
1. 验证服务器网络连通性
Gitlab需要验证官方URL的可达性,先在Gitlab服务器终端执行以下命令测试:
# 测试帮助文档URL curl -v https://docs.gitlab.com/ # 测试Diagramsnet URL curl -v https://app.diagrams.net/ # 测试Runner发布URL curl -v https://gitlab-runner-downloads.s3.amazonaws.com/
若出现超时,需:
- 检查服务器防火墙/安全组是否放行443端口的出站HTTPS流量
- 确认服务器代理配置是否正确,若使用代理需在
/etc/gitlab/gitlab.rb中添加:
之后执行gitlab_rails['http_proxy'] = 'http://your-proxy-ip:port' gitlab_rails['https_proxy'] = 'http://your-proxy-ip:port'sudo gitlab-ctl reconfigure生效。
2. 延长URL验证超时时间
Gitlab默认超时时间可能过短,可调整配置:
- 编辑
/etc/gitlab/gitlab.rb,添加:gitlab_rails['url_validation_timeout'] = 10 # 单位:秒,可按需调整 - 重新配置并重启服务:
sudo gitlab-ctl reconfigure sudo gitlab-ctl restart
3. 临时禁用URL验证(应急用)
若需紧急修改设置,可暂时关闭验证(修改完成后建议重新启用):
- 编辑
/etc/gitlab/gitlab.rb,添加:gitlab_rails['url_validation_enabled'] = false - 执行
sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart生效。
4. 检查升级后的配置完整性
升级可能导致配置异常,执行以下操作修复:
# 重新生成所有配置 sudo gitlab-ctl reconfigure # 查看详细错误日志,定位具体问题 tail -f /var/log/gitlab/gitlab-rails/production.log
5. 回退到旧版本(终极方案)
若为版本自身bug,可暂时回退到16.7.5:
# 停止服务 sudo gitlab-ctl stop # Debian/Ubuntu环境安装旧版本 sudo apt-get install gitlab-ee=16.7.5-ee.0 # CentOS/RHEL环境安装旧版本 sudo yum install gitlab-ee-16.7.5-ee.0.el7.x86_64 # 重新配置启动 sudo gitlab-ctl reconfigure sudo gitlab-ctl start
内容的提问来源于stack exchange,提问作者Pravin Kunte
相关产品推荐
相关产品推荐

