【问题标题】:Jenkins Subversion Checkout Failing - "E175002: CRLF expected at end of chunk: -1/-1"Jenkins Subversion 签出失败 - “E175002:CRLF 预计在块结束:-1/-1”
【发布时间】:2020-11-24 01:56:18
【问题描述】:

我有一个 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 配置,而我似乎没有。

Jenkins Subversion documentation 建议 C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming,但我还是什么都没有。 我已经安装了 TortoiseSVN,它确实创建了 Subversion 配置文件夹。我已经修改了http-timeout,然后将此配置放在文档建议的所有位置,但这并没有任何区别(但无论是因为它没有解决问题,还是没有被拾取 -我不确定)。

【问题讨论】:

    标签: jenkins svn visualsvn-server


    【解决方案1】:

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

    根据我的经验,以下解决方案可以解决问题 - 在 SVNKit 中启用 Spooling。查看这些门票:

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

    【讨论】:

      【解决方案2】:

      您需要启用假脱机。

      参见this Jenkins support issue,尽管this dupe issue 更好地描述了解决方案:

      在服务器上设置-Dhudson.spool-svn=true 系统属性或增加超时时间。

      【讨论】:

      • 以及我必须对这个答案进行的大量编辑,加上不正确的猜测,说明了为什么它以前被视为仅链接的答案,关于如何解决这个问题。
      • 这是在 Jenkins.XML 文件中设置的吗?当我在 Jenkins.XML 的 中设置属性 -Dhudson.spool-svn=true 时,它​​似乎对我不起作用。我正在使用詹金斯 2.391 版
      【解决方案3】:

      对于 Windows 上的 Jenkins,您需要编辑位于 Jenkins 安装目录(例如 C:\Program Files\Jenkins\jenkins.xml)中的 jenkins.xml 文件。

      为 Hudson 添加一个选项以使用 SVN 假脱机

      <service>
        ...
        <arguments>
           ...
           -Dhudson.spool-svn=true
           ...
         </arguments>
         ...
      </service>
      

      【讨论】:

        猜你喜欢
        • 2016-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-23
        • 2015-05-26
        • 2017-05-31
        • 1970-01-01
        相关资源
        最近更新 更多