git学习------> 解决Gitlab 版本升级之后,发送 merge request 出现 http 500 的返回码错误
今天有同事在Gitlab上发送 Merge Request的时候,直接出现如下所示的界面,提示http 500,服务器内部出错。
一、错误描述
1.1 创建新的 Merge Request
1.2 填写 Merge Request 相关信息
1.3 发送 Merge Request ,出现500错误
1.4 登录管理员账户,在【Admin Area】–>【Monitoring】–>【Logs】–>【production.log】里面,搜索到错误信息如下所示:
错误描述部分信息如下:
Started POST "/ouyangpeng/Git_Test/merge_requests" for 172.28.10.196 at 2017-08-12 17:11:40 +0800
Processing by Projects::MergeRequests::CreationsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"GMvnXQk+gX5kdc0aQbuz0SSux4GjTuXk5IB+H6/yulW9uXljBSm0Vn8VcFWTE37eMSFCZMMwviuEF4irAFqD2Q==", "merge_request"=>{"title"=>"test user.name", "description"=>"merge from feature/test1 to develop", "assignee_id"=>"2", "label_ids"=>[""], "force_remove_source_branch"=>"0", "lock_version"=>"", "source_project_id"=>"40", "source_branch"=>"feature/test1", "target_project_id"=>"40", "target_branch"=>"develop"}, "namespace_id"=>"ouyangpeng", "project_id"=>"Git_Test"}
Completed 500 Internal Server Error in 65ms (ActiveRecord: 9.4ms)
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column "binary" of relation "merge_request_diff_files" does not exist
LINE 1: ...le", "renamed_file", "deleted_file", "too_large", "binary", ...
^
: INSERT INTO merge_request_diff_files ("diff", "new_path", "old_path", "a_mode", "b_mode", "new_file", "renamed_file", "deleted_file", "too_large", "binary", "merge_request_diff_id", "relative_order")
VALUES ('--- /dev/null
提示 binary 这个字段在关系表 merge_request_diff_files 中不存在。
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column "binary" of relation "merge_request_diff_files" does not exist
ps: 也可以在Gitlab部署的那台服务器上,运行下面的命令,查看Gitlab的运行日志
sudo gitlab-ctl tail
但是明明一个礼拜之前,我都测试了两次merge request 都是正常的,怎么突然就出现500了呢?
经过一个下午的排查,尝试过去修改Gitlab的数据库等都失败,最后发现那几次成功的发送merge request 是在gitlab 9.2.2的时候处理的。
但是现在Gitlab的版本是9.4.3
话说我也不记得是什么原因导致我去升级的。我也不记得当时我是如何升级Gitlab版本的了,然后就出现了现在的发送merge request 就出现http 500的返回码,表示服务器内部出错。
心中出现一万匹草泥马,这个该如何解决呢??
二、解决问题
在服务器上运行下面几条命令就成功解决了该问题
2.1 gitlab-rake gitlab:env:info
# 检查环境和配置是否正确
gitlab-rake gitlab:env:info
2.2 gitlab-rake gitlab:check
#检查,检查结果会告诉你如何纠正错误。
gitlab-rake gitlab:check
2.3 gitlab-rake db:migrate
#迁移完db后需要执行此步骤。
gitlab-rake db:migrate
2.4 gitlab-rake cache:clear
#清除缓存
# gitlab-rake cache:clear
2.5 sudo gitlab-ctl reconfigure
# 应用重新配置
sudo gitlab-ctl reconfigure
2.6 sudo gitlab-ctl restart
# 重启 gitlab
sudo gitlab-ctl restart
我尝试敲完上面的命令之后,就正常了,下面我们来试一试重新发送 Merge Request
三、重新发送 Merge Request
3.1 创建新的 Merge Request
3.2 填写 Merge Request 相关信息,然后发送
3.3 收到 Merge Request 请求
3.4 查看Merge Request 请求相关信息
3.5 同意Merge Request 请求
3.6 Merge Request 处理完毕
四、总结
4.1 不要随便升级Gitlab版本
不要随便升级Gitlab版本,本来Gitlab 9.2.2运行的好好的,不知道那天突然自己发疯去升级Gitlab版本为9.4.3。Gitlab版本发布太快了,哪个版本运行稳定不要随便升级。
下面是从Gitlab 9.0.0 到 Gitlab 9.4.4的发布时间截图。
4.2 升级Gitlab版本请按官网教程来
2、如果要升级的话,一定要安装官方的教程来一步一步升级,我现在都记不得我是如何从9.2.2 升级到9.4.3的,尴尬。
https://about.gitlab.com/2017/08/10/gitlab-9-dot-4-dot-4-released/
按如上图所示,如果要升级的话不要直接跨大版本升级,有可能遇到很多未知的bug,告诉你网上基本上没有答案解决,坑爹,我在google和百度上找了一下午都找不到满意的答案。
比如你升级的话,先从9.2.0升级到9.3.0再升级到9.4.0 不要一步就升级完。
4.3
即使真的出现问题,也别怕,可以一步一步尝试,最终还是会解决的!
参考链接
- http://www.jianshu.com/p/79447d5bf99e
- https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/update
+
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng/article/details/77124597如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。
git学习------> 解决Gitlab 版本升级之后,发送 merge request 出现 http 500 的返回码错误的更多相关文章
- 【转】GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?
在 GitHub 上混久了,经常听到 Pull Request,在 GitLab 上混久了,则经常 提起 Merge Request ,然而它们之间有不同吗?为什么要用两个不同的名称? 要追溯这两个名 ...
- 解决微信小程序用 SpringMVC 处理http post时请求报415错误
解决微信小程序用 SpringMVC 处理http post时请求返回415错误 写微信小程序时遇到的问题,这个坑硬是让我整了半天 wx.request请求跟ajax类似处理方法一致 小程序端请求代码 ...
- GitLab:解决Merge Request中Commits不更新的问题
最近在使用 GitLab 的 Merge Requests 功能进行 Code Review .操作流程是这样的: 1)开发人员A要给一个项目增加一个新功能,先在这个项目上创建一个 Git 分支. 2 ...
- Git学习-->如何通过Shell脚本实现 监控Gitlab备份整个过程并且通过邮件通知得到备份结果?
一.背景 Git学习–>如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器? http://blog.csdn.net/ouyang_peng/article/details/ ...
- Git 学习笔记--Git下的冲突解决
冲突的产生 很多命令都可能出现冲突,但从根本上来讲,都是merge 和 patch(应用补丁)时产生冲突. 而rebase就是重新设置基准,然后应用补丁的过程,所以也会冲突. git pull会自动m ...
- Git学习-->GitLab如何修改时区?
一.背景 今天有同事在GitLab上查看时间的时候,发现GitLab上显示的时间和提交的时间不一致. 本地时间现在为:2017-11-28 11:43 查看本地代码提交的时间为:2017-11-28 ...
- Git学习-->如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?
一.背景 在我之前的博客 git学习--> Gitlab如何进行备份恢复与迁移? (地址:http://blog.csdn.net/ouyang_peng/article/details/770 ...
- git学习------> Gitlab如何进行备份恢复与迁移?
前段时间,在某台CenterOS服务器上搭建了Gitlab环境,并且大家陆陆续续的都把代码从svn迁移到了gitlab,但是之前的CenterOS服务器并不是搭建在公司的机房环境,而是搭建在办公室的某 ...
- git学习------>如何汉化GitLab?
在上一篇博客中,已经正常安装好了GitLab,然而全部界面都是纯英文的,为了照顾整个团队的英文水平,因此这篇博客的目的是将纯英文的GitLab进行汉化. 纯英文界面 第一步: 确认GitLab版本号 ...
随机推荐
- C#设计模式系列:抽象工厂模式(AbstractFactory)
出自:http://www.cnblogs.com/libingql/archive/2012/12/09/2809754.html 1. 抽象工厂模式简介 1.1 定义 抽象工厂(Abstract ...
- mybatis由浅入深day02_8spring和mybatis整合
8 spring和mybatis整合 8.1 整合思路 需要spring通过单例方式管理SqlSessionFactory.mapper接口. spring和mybatis整合生成代理对象,使用Sql ...
- Python 进阶(二)模块
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW4AAABpCAIAAACVsl7UAAAgAElEQVR4nO2993vUxho2/P4r33XwSr
- 查看网卡流量:nload
nload命令用于查看网卡流量,用法如下: [root@localhost ~]$ yum install -y epel-release [root@localhost ~]$ yum instal ...
- NGUI屏幕自适应(转)
屏幕自适应 NGUI可以比较方便的实现屏幕自适应,但是它的官方教程里面针对这个问题没有详细的教程,所以可能在实现的时候会走比较多的弯路.以下是我在开发过程中找到的一个比较方便的实现方法. 主要组件 ...
- lua知识点整理
1. lua全局环境和局部环境 local cf = loadstring(" local i=0 i=i+1 print(i) ") --从后面两个输出我们可以看出,生成的函数的 ...
- echarts实现柱状图分页展示
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- VC6IDE环境宏辅助添加移除注释
VC6很老了(15年),当年的IDE功能不如现在的各种IDE功能丰富. 比如自动添加注释,就需要借助第三方插件或自己动手实现. 最近做些code试验,新装上了VC6,但是改代码时不能自动添加注释,很不 ...
- android基础---->NDK的使用
NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式.NDK将是Android平台支持C开发的开端,今天我们开始ndk的学习. NDK的简要说明 ndk是什么: The Nati ...
- JS-缓冲运动-对联型悬浮框
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...