歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> GitLab 發出MergeRequest的時候返回500錯誤的兩個解決log

GitLab 發出MergeRequest的時候返回500錯誤的兩個解決log

日期:2017/2/28 14:24:56   编辑:Linux教程

Post內容過大的fix

某sub repo 發送 merge request 後,gitlab的沙漏滾了N圈後返回了一個500錯誤,檢查後台的production.log(若有admin權限,可以訪問訪問http://your_gitlab_domain/admin/logs 查看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` = 39
Mysql2::Error: closed MySQL connection: ROLLBACK
Completed 500 Internal Server Error in 1396ms
ActiveRecord::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 ,找到一個簡單的 solution ,修改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 http://www.linuxidc.com/Linux/2012-12/75249.htm

GitLab 5.3 升級注意事項 http://www.linuxidc.com/Linux/2013-06/86473.htm

在 CentOS 上部署 GitLab (自托管的Git項目倉庫) http://www.linuxidc.com/Linux/2013-06/85754.htm

在RHEL6/CentOS6/ScientificLinux6上安裝GitLab 6.0.2 http://www.linuxidc.com/Linux/2014-03/97831.htm

CentOS 6.5安裝GitLab教程及相關問題解決 http://www.linuxidc.com/Linux/2014-05/101526.htm

GitLab 的詳細介紹:請點這裡
GitLab 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved