对于我们的一个gerrit项目,在导航文件差异时,我们收到此错误:
应用程序错误
由于服务器错误而无法使用Intraline差异
[继续]
所有项目都没有发生,目前我们只在一个项目中检测到错误。
我查看了谷歌和gerrit文档。找到他们的源代码的参考,但不知道是什么原因以及如何解决它。
包含错误的网页包含"继续"按钮。点击后,它会将您带到您选择的文件,但错误很烦人。
你知道如何解决这个问题吗?
答案 0 :(得分:2)
这是在两次提交之间比较时缓存一个文件的intraline差异引起的。默认超时值为5秒。如果文件很大,并且计算时间超过超时,则终止工作线程,显示错误消息,并且不显示文件对的intraline差异。
解决方案可以解决这个问题。
在gerrit.conf中添加配置。
[cache" diff_intraline"]
超时= 15000毫秒#或其他时间长度。
使用具有ViewCaches全局功能的用户运行SSH命令" gerrit flush-caches"
ssh -p port userxxx @ host gerrit flush-caches
然后它会起作用。
答案 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