GitLab 发出MergeRequest的时候返回500错误的两个解决log

Post内容过大的fix

某sub repo 发送 merge request 后,gitlab的沙漏滚了N圈后返回了一个500错误,检查后台的production.log(若有admin权限,可以访问访问 查看production.log这个标签),发现错误如下:Mysql2::Error: MySQL server has gone away: UPDATE `merge_request_diffs` SET `st_commits` = ‘….’, `state` = ‘collected’, `updated_at` = ‘2014-11-03 12:50:16′ WHERE `merge_request_diffs`.`id` = 39Mysql2::Error: closed MySQL connection: ROLLBACKCompleted 500 Internal Server Error in 1396msActiveRecord::StatementInvalid (Mysql2::Error: closed MySQL connection: ROLLBACK):app/services/merge_requests/create_service.rb:10:in `execute’app/controllers/projects/merge_requests_controller.rb:87:in `create’

简而言之可以看到错误应该就是在和mysql上。按照这个思路就可以很容易在google上得到更多的issue ,找到一个简单的 ,修改mysql的配置环境就可以。

/etc/my.cnf

[mysqld]max_allowed_packet=512M

在mysqld中添加max_allowed_packet,,调整值,加大为一个合适的数字即可。

然后reload下mysql的服务即可。

字符集的fix

同样,production.log,发现错误如下:

Mysql2::Error: Incorrect string value: ‘\xE4\xBB\x85\xE5\xB7\xB2…’ for column ‘st_diffs’ at row 1: UPDATE `merge_request_diffs` SET `st_commits` = ‘—\n- :id: 1 …….. Completed 500 Internal Server Error in 2210ms

这个错误是由于字符集的不兼容的原因。在create database的时候建议用utf-8,若你用latin之类往往会出如上的错。这个issue很好的解决了这个问题.进入mysql数据库对应的db,执行命令如下:

alter table merge_request_diffs default character set = utf8 collate = utf8_unicode_ci;alter table merge_request_diffs convert to character set utf8 collate utf8_unicode_ci;

然后应该就可以继续用了。

在 Ubuntu 12.04 上安装 GitLab

GitLab 5.3 升级注意事项

在 CentOS 上部署 GitLab (自托管的Git项目仓库)

在RHEL6/CentOS6/ScientificLinux6上安装GitLab 6.0.2

CentOS 6.5安装GitLab教程及相关问题解决

GitLab 的详细介绍:请点这里GitLab 的下载地址:请点这里

本文永久更新链接地址:

世上没有绝望的处境,只有对处境绝望的人。

GitLab 发出MergeRequest的时候返回500错误的两个解决log

相关文章:

你感兴趣的文章:

标签云: