2

对于我们的一个 gerrit 项目,在浏览文件差异时,我们会收到以下错误:

应用程序错误

由于服务器错误,行内差异不可用

[继续]

并非所有项目都会发生这种情况,目前我们仅在一个项目上检测到错误。

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

出现错误的网页包含“继续”按钮。单击后,它将带您进入您选择的文件,但错误很烦人。

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

4

2 回答 2

2

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

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

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

    [缓存“diff_intraline”]

    timeout = 15000 ms # 或者你想要的其他时间长度。

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

    ssh -p 端口 userxxx@host gerrit 刷新缓存

然后它会工作。

于 2014-06-18T09:25:04.920 回答
1

错误原因:

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

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

于 2012-06-08T17:31:35.483 回答