Jenkins Subversion 签出失败 - “E175002:CRLF 预计在块末尾:-1/-1”

2024-01-14

我有一个 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,然后将此配置放在文档建议的所有位置,但这没有任何区别(但是否是因为它没有解决问题,或者没有被拾取 - 我不确定)。


这个错误E175002: CRLF expected at end of chunk: -1/-1使用 SVNKit 支持 Subversion 的产品(Jenkins、Fisheye、Crucible 等)可能会出现此错误。 svn.exe、TortoiseSVN 或本机 JavaHL 库不应出现该错误。

根据我的经验,以下解决方案解决了该问题 - 在 SVNKit 中启用 Spooling。请参阅这些门票:

  • https://issues.jenkins-ci.org/browse/JENKINS-44307 https://issues.jenkins-ci.org/browse/JENKINS-44307
  • https://issues.tmatesoft.com/issue/SGT-989 https://issues.tmatesoft.com/issue/SGT-989.

该错误是由 SVNKit 产生的,SVNKit 在 Jenkins 中用于启用 SVN 客户端功能。 SVNKit 是 Subversion 的单独重新实现,SVNKit 可能有自己的细节,可能会导致实际 Apache Subversion 客户端不会发生的问题或错误。我不是 SVNKit 方面的专家,但在我看来,您遇到过此类 SVNKit 特定问题或至少遇到过错误措辞。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins Subversion 签出失败 - “E175002:CRLF 预计在块末尾:-1/-1” 的相关文章

随机推荐