Gitlab使用文本文件误检测二进制文件并引发内部错误(500次哎呀)

时间:2016-06-28 05:17:52

标签: gitlab gitlab-omnibus gitlab-8

问题是什么?

当我从Gitlab上的项目的Commits视图中推送一个提交二进制文件的提交链接时,我收到一个内部错误,“500哎呀,我们最终出了问题。”
创建合并请求时,也会出现此问题,该合并请求的来源与上述提交相同。 Production.log说,

Started GET "/TempTest/bsp/commit/3098a49f2fd1c77be0c383994aa6655f5d15ebf8" for 127.0.0.1 at 2016-05-30 16:17:15 +0900
Processing by Projects::CommitController#show as HTML
  Parameters:{"namespace_id"=>"TempTest", "project_id"=>"bsp", "id"=>"3098a49f2fd1c77be0c383994aa6655f5d15ebf8"}

Encoding::CompatibilityError (incompatible character encodings: UTF-8 and ASCII-8BIT):
  app/views/projects/diffs/_file.html.haml:54:in `_app_views_projects_diffs__file_html_haml__1070266479743635718_49404820'
  app/views/projects/diffs/_diffs.html.haml:22:in `block in _app_views_projects_diffs__diffs_html_haml__2984561770205002953_48487320'
  app/views/projects/diffs/_diffs.html.haml:17:in `each_with_index'
  app/views/projects/diffs/_diffs.html.haml:17:in `_app_views_projects_diffs__diffs_html_haml__2984561770205002953_48487320'
  app/views/projects/commit/show.html.haml:12:in `_app_views_projects_commit_show_html_haml__3333221152053087461_45612480'
  app/controllers/projects/commit_controller.rb:30:in `show'
  lib/gitlab/middleware/go.rb:16:in `call'

Completed 500 Internal Server Error in 210ms (Views: 8.7ms | ActiveRecord: 10.5ms)

Gtilab似乎用文本文件误检测二进制文件 所以HTML格式化引擎似乎遇到了错误。(“Encoding :: CompatibilityError”)

Gitlab有时会误检测文本文件中的二进制文件,但是问题是当发生这种错误检测时Gitlab服务器会通过内部错误来停止事务。

有人能告诉我如何继续进行服务器交易,即使发生了这样的错误判断吗? 例如,我假设以下答案。

  • 例如1)强制将文件识别为二进制文件。
  • 例如.2)发生此类错误时绕过HTML转换。

我试图解决的问题。

我将描述'* .XXX binary'添加到.gitattribute以确认我是否可以让某个文件强行识别它是Gitlab的二进制文件。 Git客户端将文件识别为二进制文件,并且diff不输出文本。然而,即使我确实推动它,Gitlab也没有效果。

版本信息

  • 我首先在Gitlab 8.6.2上遇到过这个问题,但是在8.8.3上也出现了同样的问题。
  • 我使用git-2.7.2

谢谢。

0 个答案:

没有答案