我有一个 Jenkins v2.107.2 实例(作为 Windows 服务运行),它正在通过 Subversion 从 Visual SVN 服务器(在单独的 Windows PC 上)检查多个项目。
其中一个项目(最大的 - ~2.7GB)偶尔会出现,但在尝试结帐时始终失败并出现以下错误:
ERROR: Failed to check out https://example.com/myrepo
org.tmatesoft.svn.core.SVNException: svn: E175002: CRLF expected at end of chunk: -1/-1
svn: E175002: REPORT request failed on '/svn/REPO/!svn/vcc/default'
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)
另外,在检查Visual SVN Server的日志时,我可以看到以下内容:
Error writing base64 data: The timeout specified has expired [500, #70007]
A failure occurred while driving the update report editor [500, #70007]
Provider encountered an error while streaming a REPORT response. [500, #0]
以前,通过将 Jenkins 和 Subversion 插件降级一个版本的某种组合解决了此错误,但尽管此后没有更改版本,但这不再起作用。
从网上看,Subversion 中似乎内置了某种超时,如果超过一定时间,请求将被终止。但是,这些说明都引用了应该位于 %APPDATA%\Roaming 中的 Subversion 配置,但我似乎没有。
The Jenkins Subversion 文档 https://wiki.jenkins.io/display/JENKINS/Subversion+Plugin建议C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming
,但我那里什么也没有。
我已经安装了 TortoiseSVN,它确实创建了 Subversion 配置文件夹。我已经修改了http-timeout
,然后将此配置放在文档建议的所有位置,但这没有任何区别(但是否是因为它没有解决问题,或者没有被拾取 - 我不确定)。