Gerrit - 应用程序错误 - 由于服务器错误而无法使用Intraline差异

时间:2012-06-08 16:47:48

标签: gerrit

对于我们的一个gerrit项目,在导航文件差异时,我们收到此错误:

应用程序错误

由于服务器错误而无法使用Intraline差异

[继续]

所有项目都没有发生,目前我们只在一个项目中检测到错误。

我查看了谷歌和gerrit文档。找到他们的源代码的参考,但不知道是什么原因以及如何解决它。

包含错误的网页包含"继续"按钮。点击后,它会将您带到您选择的文件,但错误很烦人。

你知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

这是在两次提交之间比较时缓存一个文件的intraline差异引起的。默认超时值为5秒。如果文件很大,并且计算时间超过超时,则终止工作线程,显示错误消息,并且不显示文件对的intraline差异。

解决方案可以解决这个问题。

  1. 在gerrit.conf中添加配置。

    [cache" diff_intraline"]

    超时= 15000毫秒#或其他时间长度。

  2. 重启Gerrit服务
  3. 使用具有ViewCaches全局功能的用户运行SSH命令" gerrit flush-caches"

    ssh -p port userxxx @ host gerrit flush-caches

  4. 然后它会起作用。

答案 1 :(得分:1)

错误原因:

这是因为Gerrit花费太长时间来区分文件,并将其中一个缓存中的差异标记为不可用。

相关的错误日志在这里: [2012-06-08 11:14:08547] WARN com.google.gerrit.server.patch.IntraLineLoader:5000毫秒超时项目XXXXXXX达到IntraLineDiff对xxxxxxx.java比较bf9fbc21520af7bfd0841c8b9f955ca6e215b059..f6b9c7992c12cfdca253acd033966f98f70f3543路径提交354dd67ad54578cf801d8cda64a4ae8484ebb0b7。杀死IntraLineDiff-6